出现提示'尚未调用CoInitialize'怎么办?

chdaner 2010-03-10 02:24:29
我用的是delphi7.0 破解安装了intraweb9.0.15

我在IWFORM上添加adoquery后,F9运行.

出现提示'尚未调用CoInitialize',这是什么问题呢?

我已经uses comobj,shlobj,activex

initialization
CoInitialize(nil);
TIWForm2.SetAsMainForm;
finalization
CounInitialize;

还是没解决问题,这是什么原因呢?
...全文
1016 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
支持中文哦 2010-03-20
  • 打赏
  • 举报
回复
呵呵,楼上都是普通的程序书写习惯。
在introweb中,有个属性需要设置好,特别是用ado这类COM对象。
注意看看你的TIWServerControllerBase继承类里面有个ComInitialize属性,必须要设定为ciNormal或其他,默认的ciNone不初始化COM对象,所以报你那个错误的。
这些是introweb框架属性来完成,编写代码还是同样报错的
gxj760998 2010-03-20
  • 打赏
  • 举报
回复
initialization
CoInitialize(nil);
TIWForm2.SetAsMainForm;
finalization
CounInitialize;
它不是在子线程中调用的。所以还的单独加上。
SQLDebug_Fan 2010-03-20
  • 打赏
  • 举报
回复
楼主你在initialization中CoInitialize(nil)只能是初始化了主线程中的,如果你在子线程中还要CoInitialize(nil)。
heiyuyun 2010-03-19
  • 打赏
  • 举报
回复
CoInitialize(nil);
SQLDebug_Fan 2010-03-18
  • 打赏
  • 举报
回复
默认主线程中用ADO是不要加CoInitialize,只有在子线程中才要加CoInitialize
火星牛 2010-03-18
  • 打赏
  • 举报
回复
在线程中使用ADO,需要加CoInitialize(nil);

放在Form的onCreate时间或Constructor去,form是在线程中创建的。

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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