如何在线程中使用OLE自动化---急急急!!!

little_boy 2000-02-14 05:33:00
各位: 我在编程时,需要在线程中使用OLE自动化,比如在线程中利用OLE自动化建立一个WORD文档。但老是不成功。请各位高手指教!
...全文
241 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
netmare 2000-02-15
  • 打赏
  • 举报
回复
你必须在每个线程中先执行coinitialize/oleinitialize,然后才可以进行ole操作,这是ole要求的.


netmare 2000-02-15
  • 打赏
  • 举报
回复
Zhong说的对
Zhong 2000-02-15
  • 打赏
  • 举报
回复
uses ..., ActiveX, ...
Lin 2000-02-15
  • 打赏
  • 举报
回复
uses ..., ComObj, ...
new_power 2000-02-15
  • 打赏
  • 举报
回复
具体情况:
1。在主线程中创建一个TThread对象。
2。在TThread对象的Execute 方法中为以下代码:
procedure Execute;
var
V:variant;
begin
V:=createOleobject('Word.Basic');
V.filenew('normal');
V.insert('hello');
V.filesaveas('c:\test.doc');

end;
3.程序运行后,当创建Thread时,出现错误,说"coinitialize未初始化"
请问有什么方法解决!
越具体有效分越高!!!
little_boy 2000-02-15
  • 打赏
  • 举报
回复
这个我知道,但我不知道说明这个函数的文件是什么,即需在uses 中引用什么?
netmare 2000-02-15
  • 打赏
  • 举报
回复
coinitialize(0)即可
另外,别忘了线程结束前别忘了CoUninitialize( )
little_boy 2000-02-15
  • 打赏
  • 举报
回复
如何调用coinitialize/oleinitialize?
Firing_Sky 2000-02-14
  • 打赏
  • 举报
回复
创建一个TThread对象,继承它的Create()方法,在Create事件里用CreateOleObject……
Lin 2000-02-14
  • 打赏
  • 举报
回复
熟悉VBA和Variant变量吗?如下所示:
procedure TForm1.FormCreate(Sender: TObject);
var ole1: Variant;
begin
ole1 := CreateOleObject('Word.Document');
ole1.SaveAs('1234.doc');
end;
将产生一个文档1234.doc,虽然空空如也!
kxy 2000-02-14
  • 打赏
  • 举报
回复
请具体一些:)

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧