Delphi中出现小问题及处理
admin
2023-01-28 16:55:35
0

1、尚未调用CoInitialize

Delphi中出现小问题及处理

这是在调用Com对象(比如ADO对象)时出现的错误,按道理Delphi应该把这个问题自动处理好,但它就是出现了。所以只能自己处理。在单元文件中引用ActiveX,然后在初始和结束手动初始化和结束初始化。

initialization

CoInitialize(nil);

finalization

CoUninitialize;

另外有一点需要注意的是,根据MSDN:

Initializes the COM library on the current thread and identifies the concurrency model as single-thread apartment (STA).

New applications should call CoInitializeEx instead of CoInitialize.

If you want to use the Windows Runtime, you must call Windows::Foundation::Initialize instead.

这个Com库的初始化函数只对当前线程有效,所以如果使用了多线程,在别的线程出现报错,只是手动在主线程增加初始化是没用的,必须加在对应的线程单元中合适的位置

以上述程序为例,开始的时候,将 CoInitialize(nil)加在了主窗体中,无效,因为对相关Com的调用是在别的线程;然后加在线程文件的initialization中,出乎意料,也无效。后来思考了一下,单元文件的initialization实际上还是主线程调用的,因为这时我自己写的线程还没有启动。最后把调用加在Execute方法里,报错消失了。


2、被呼叫方拒绝接收呼叫

Delphi中出现小问题及处理

因为是通过Com对象进行操作(比如导出Excel),这种情况一般是由于操作过快造成的(Com的速度都比较慢),需要减缓一下操作速度。

相关内容

热门资讯

【今日要闻】“炫龙炸/金/花到... 有 亲,根据资深记者爆料炫龙炸/金/花是可以开挂的,确实有挂(咨询软件无...
市值登顶仍不够 英伟达请来谷歌... 财联社1月9日讯(编辑 赵昊)英伟达即将任命谷歌云高管Alison Wagonfeld为其首席营销官...
玩家最新攻略“神皇大厅有挂吗?... 有 亲,根据资深记者爆料神皇大厅是可以开挂的,确实有挂(咨询软件无需打开...
重磅消息“家乡亲友是不是有挂?... 重磅消息“家乡亲友是不是有挂?”(太坑了果然有挂)您好,家乡亲友这个游戏其实有挂的,确实是有挂的,需...
终于懂了“玄龙二厅开挂器?”(... 家人们!今天小编来为大家解答玄龙二厅透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里买很...
今日重磅消息“德娴麻将有没有挂... 有 亲,根据资深记者爆料德娴麻将是可以开挂的,确实有挂(咨询软件无需打开...
最新引进“皇豪众娱开挂神器?”... 家人们!今天小编来为大家解答皇豪众娱透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里买很...
最新引进“西南互娱开挂器?”(... 网上科普关于“西南互娱有没有挂”话题很是火热,小编也是针对西南互娱作*弊开挂的方法以及开挂对应的知识...
今日重大消息“凑一桌游戏有没有... 网上科普关于“凑一桌游戏有没有挂”话题很是火热,小编也是针对凑一桌游戏作*弊开挂的方法以及开挂对应的...
重磅消息“微信红包究竟有挂吗?... 网上科普关于“微信红包有没有挂”话题很是火热,小编也是针对微信红包作*弊开挂的方法以及开挂对应的知识...