本文实例讲述了C++中COM组件初始化方法。分享给大家供大家参考。具体如下:
这里使用BCB
在使用TADOConnect等组件时需要进行初始化
调用接口 :
1
2
|
CoInitialize(NULL); //初始化COM套件
CoUninitialize(); //释放COM套件
|
在DLL入口中调用:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
static bool isCoInitialize = false ; //是否是自己进行的初始化
int WINAPI DllEntryPoint( HINSTANCE hinst, unsigned long reason, void * lpReserved)
{
if (reason==DLL_PROCESS_ATTACH)
{
if (ConInitialize(NULL) == S_OK) isCoInitialize = true ;
}
if (reason==DLL_PROCESS_DETACH)
{
if (isCoInitialize) CoUninitialize();
//是自己初始化的才释放,否则由其他初始化的地方自行释放,
//防止错误的释放导致别的调用者失败
}
return 1;
}
|
希望本文所述对大家的C++程序设计有所帮助。