coinitializessecurity禁用clr选项失败



我有一个用托管代码编写并成功运行的应用程序,但是现在我禁用了visual studio 2008中的/clr选项,并进行了必要的更改以删除管理代码并将其转换为本机,并成功编译了代码,但是,功能CoInitializeSecurity()HResult = 0x800401f0失败。说CoInitialize has not been called....当我说GetLastError()时,它是returns 0

HRESULT hres = CoInitializeSecurity(
                                NULL,
                                -1,
                                NULL,
                                NULL,
                                RPC_C_AUTHN_LEVEL_DEFAULT,
                                RPC_C_IMP_LEVEL_IMPERSONATE,
                                NULL,
                                EOAC_NONE,
                                NULL
                                );
if (FAILED(hres))
{
    MessageBox(NULL, "COM Init failed...", "Stop", MB_OK);
    return FALSE;
}

提前感谢,

如果/clr启用

,相同的代码可以正常工作

确定。之前是CLR负责调用CoInitializeEx()。从Main()入口点的[STAThread]属性或传递给Thread::SetApartmentState()的值(如果有的话)中选择公寓类型。默认为MTA。

这不会再发生了,因为你现在编译没有/clr。因此你必须自己调用CoInitializeEx()

相关内容

  • 没有找到相关文章

最新更新