急急 ADO 连接数据库,用AfxOleInit()初始化OLE/COM库环境 ,用什么来清除呢

时间:2021-07-25 14:01:19
我做了一个ADO连接数据库的接口,在调用这个接口时候,不能多次初始化OLE/COM库环境 ,但我要多次进行初始化工作,Example:
....

if(AfxOleInit())    //1
  return false;
.....

                    //1.1

if(AfxOleInit())    //2
  return false;


在2的位置有异常,可捕捉不到,实际上OLE/COM库环境已经初始化(1处初始化的),但我要用到再次初始化, 在1.1位置如何处理?







2 个解决方案

#1


在使用ADO对象之前必须先初始化COM环境。初始化COM环境可以用以下代码完成:
::CoInitialize(NULL);
在初始化COM环境后,就可以使用ADO对象了,如果在程序前面没有添加此代码,将会产生COM错误。
在使用完ADO对象后,需要用以下的代码将初始化的对象释放:
::CoUninitialize();
此函数清除了为ADO对象准备的COM环境。

#2


我试了试,是可以的thank you

#1


在使用ADO对象之前必须先初始化COM环境。初始化COM环境可以用以下代码完成:
::CoInitialize(NULL);
在初始化COM环境后,就可以使用ADO对象了,如果在程序前面没有添加此代码,将会产生COM错误。
在使用完ADO对象后,需要用以下的代码将初始化的对象释放:
::CoUninitialize();
此函数清除了为ADO对象准备的COM环境。

#2


我试了试,是可以的thank you