【发布时间】:2013-09-19 06:08:07
【问题描述】:
我有一个加载 1.dll 的 .exe,而 1.dll 加载 1_1.dll。 在 .exe 中,我创建了多个线程,我从其中一个线程调用一个函数,该函数调用一个 1.dll 函数,该函数在其他事物之间..调用 1_1.dll 中的一个函数,但无法执行此操作:
// Initialize COM.
HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
if( FAILED(hr) )
{
//m_iStatus = ERROR_COINITIALIZE_EX;
return;
}
// Set general COM security levels.
hr = CoInitializeSecurity(
NULL,
-1,
NULL,
NULL,
RPC_C_AUTHN_LEVEL_PKT_PRIVACY,
RPC_C_IMP_LEVEL_IMPERSONATE,
NULL,
0,
NULL);
if( FAILED(hr) )
{
CoUninitialize();
//m_iStatus = ERROR_COINITIALIZE_SEC;
return;
}
使用此消息调用 CoInitializeSecurity 失败:
必须在编组或解组任何接口之前初始化安全性。初始化后无法更改。
谁能解释一下这里发生了什么,我做错了什么以及我应该如何解决这个问题?
【问题讨论】:
标签: windows visual-c++ com