在DLL中调用IWbemLocator::connectServer卡死无返回

Areslee 2016-09-30 03:50:47
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()上,不知道为什么,求大牛指点。谢谢
...全文
494 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Areslee 2016-10-01
  • 打赏
  • 举报
回复
找到原因了,不能在DllMain里调
oyljerry 2016-09-30
  • 打赏
  • 举报
回复
可能只能主线程中调用这个接口
内容概要:本文针对无刷直流电机驱动的电子机械制动(EMB)执行器,建立了考虑Stribeck摩擦特性的非线性耦合动力学模型,并在Simulink环境完成了系统级仿真分析。研究综合集成了电机动力学、齿轮传动机构与制动执行机构的动力学特性,构建了高保真的机电一体化系统模型。重点引入Stribeck摩擦模型以精确描述低速工况下执行器内部存在的静摩擦、粘滞摩擦与库仑摩擦之间的过渡行为,有效提升了系统在启停、反向运动等瞬态过程的动态响应仿真精度。通过多工况仿真验证了模型的有效性,能够准确反映摩擦引起的爬行、滞后与定位误差等非线性现象,为EMB系统的高性能控制算法设计(如摩擦补偿、滑模控制)与结构优化提供了高可信度的仿真平台。; 适合人群:从事汽车电子制动系统、电机驱动控制、机电系统建模与仿真研究的研究生、科研人员及工程技术人员,需具备扎实的机械动力学、自动控制理论基础和MATLAB/Simulink仿真能力。; 使用场景及目标:①用于高精度电子机械制动系统的设计验证与性能预测;②为消除摩擦非线性影响的先进控制策略(如自适应控制、智能控制)提供精确的被控对象模型;③深入探究Stribeck摩擦等非线性因素对系统动态性能(如响应延迟、稳态误差)的作用机理; 阅读建议:读者应结合提供的Simulink模型文件,深入剖析Stribeck摩擦模块的数学实现与参数辨识方法,建议通过改变输入指令(如阶跃、正弦)和负载条件进行对比仿真,以直观理解非线性摩擦对系统动态特性的影响。

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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