我需要在一个DLL中对数据库进行操作。在没有在DLL中的窗体上放ADO控件时DLL编译通过,我写的测试程序调用也没什么问题。可是我把ADO控件家在DLL中的窗体上之后
,编译没问题,但是测试程序调用时,在DLL中我一NEW 那个窗体马上就出错,错误提示是:Coinitialze has not been called .
请问各位这个问题我该在没来解决呢????
...全文
593打赏收藏
这个问题怎么解决?在DLL的窗体中使用ADO控件的问题
我需要在一个DLL中对数据库进行操作。在没有在DLL中的窗体上放ADO控件时DLL编译通过,我写的测试程序调用也没什么问题。可是我把ADO控件家在DLL中的窗体上之后 ,编译没问题,但是测试程序调用时,在DLL中我一NEW 那个窗体马上就出错,错误提示是:Coinitialze has not been called . 请问各位这个问题我该在没来解决呢????
参考一下:
在窗体中使用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的资源