加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – CoInitializeSecurity错误

发布时间:2020-12-14 03:53:47 所属栏目:Windows 来源:网络整理
导读:我有一个.exe加载1.dll和1.dll加载1_1.dll. 在.exe中我创建了多个线程,从其中一个线程我调用一个调用1.dll函数的函数,该函数在其他东西之间调用一个来自1_1.dll的函数,该函数执行此操作失败: // Initialize COM. HRESULT hr = CoInitializeEx(NULL,COINIT_M
我有一个.exe加载1.dll和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,RPC_C_AUTHN_LEVEL_PKT_PRIVACY,RPC_C_IMP_LEVEL_IMPERSONATE,NULL);
    if( FAILED(hr) )
    {
        CoUninitialize();
        //m_iStatus = ERROR_COINITIALIZE_SEC;
        return;
    }

它通过以下消息调用CoInitializeSecurity:

必须在对任何接口进行编组或解组之前初始化安全性.初始化后无法更改.

任何人都可以告诉我这里发生了什么,我做错了什么,我应该如何解决这个问题?

解决方法

CoInitializeSecurity function …

… is called exactly once per process,either explicitly or implicitly

DLL可能需要调用CoInitializeSecurity的唯一情况是它被加载到进程中,已知它不会自己初始化COM.这个过程基本上都是DLL的瘦主机.那就是,几乎从来没有.

进行CoInitializeSecurity是.EXE的任务.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读