在DLL中调用IWbemLocator::connectServer卡死无返回
UINT DebugTest2(void)
{
HRESULT hRet=CoInitializeEx(NULL,COINIT_MULTITHREADED);
IWbemServices *m_pService;
CComPtr<IWbemLocator> Locator;
if(RPC_E_TOO_LATE==hRet)
{
hRet=S_OK;
}
else if(FAILED(hRet))
{
return hRet;
}
hRet=CoInitializeSecurity(NULL, // we're not a server
-1, // we're not a server
NULL, // dito
NULL, // reserved
RPC_C_AUTHN_LEVEL_DEFAULT, // let DCOM decide
RPC_C_IMP_LEVEL_IMPERSONATE,
NULL,
EOAC_NONE,
NULL );
if((RPC_E_TOO_LATE!=hRet)&&FAILED(hRet))
{
return hRet;
}
hRet=CoCreateInstance(CLSID_WbemLocator,NULL,CLSCTX_INPROC_SERVER,IID_IWbemLocator,reinterpret_cast<void**>(&Locator));
if(FAILED(hRet))
{
return hRet;
}
hRet=Locator->ConnectServer(L"root\\cimv2",NULL,NULL,NULL,WBEM_FLAG_CONNECT_USE_MAX_WAIT,NULL,NULL,&m_pService);
.....
}
之前在另一个工程中(EXE)同样的代码能正常工作,但放到后到DLL之后卡死在ConnectServer()上,不知道为什么,求大牛指点。谢谢