这个问题怎么解决?在DLL的窗体中使用ADO控件的问题

pp616 2002-01-31 09:19:57
加精
我需要在一个DLL中对数据库进行操作。在没有在DLL中的窗体上放ADO控件时DLL编译通过,我写的测试程序调用也没什么问题。可是我把ADO控件家在DLL中的窗体上之后
,编译没问题,但是测试程序调用时,在DLL中我一NEW 那个窗体马上就出错,错误提示是:Coinitialze has not been called .
请问各位这个问题我该在没来解决呢????
...全文
59 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
snla 2002-01-31
  • 打赏
  • 举报
回复
不要放在窗体上。
在头文件中
TADOQuery *Query;
在构造函数中
Query = New TADOQuery((TComponent*)NULL);
Query->ConnectionString = ...;
然后就可以用了!
invalid 2002-01-31
  • 打赏
  • 举报
回复
参考一下:
在窗体中使用ADO之前先:
HRESULT i=CoInitialize(NULL);
switch (i)
{
case S_OK:
break;
case S_FALSE:
break;
case E_OUTOFMEMORY:
ShowMessage("Init COM Error:Out of Memory!");
break;
case E_INVALIDARG:
ShowMessage("Init COM Error:the argument is invalid.");
break;
case E_UNEXPECTED:
ShowMessage("Init COM Error:an unexpected error occurred");
break;
}
在程序结束前:
CoUninitialize();
释放ADO的资源
invalid 2002-01-31
  • 打赏
  • 举报
回复
按照它的提示:
执行一下:
Coinitialze();
这句是必须的。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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