gpt4 book ai didi

.net - 从 .NET 应用程序间接调用 CoInitializeSecurity

转载 作者:太空狗 更新时间:2023-10-29 15:36:48 26 4
gpt4 key购买 nike

我在纯 C 项目中有以下代码:

void Foo()
{
HRESULT hres = CoInitializeEx(0, COINIT_MULTITHREADED);

hres = CoInitializeSecurity(
NULL,
-1, // COM authentication
NULL, // Authentication services
NULL, // Reserved
RPC_C_AUTHN_LEVEL_DEFAULT, // Default authentication
RPC_C_IMP_LEVEL_IMPERSONATE, // Default Impersonation
NULL, // Authentication info
EOAC_NONE, // Additional capabilities
NULL // Reserved
);
}

如果我将项目构建为应用程序 (.exe) 并调用此方法,一切正常。

如果我将项目构建为静态库 (.lib),在 .NET 应用程序中使用它并调用该方法,CoInitializeSecurity 将返回错误 1008:尝试引用不存在的 token 。

最佳答案

这是 expected behavior在那CoInitializeSecurity并不是要从 CLR 中执行的代码中调用。

如果您明确需要调用CoInitializeSecurity,那么您需要host the CLR yourself并在进程中启动 CLR 之前调用 CoInitializeSecurity

关于.net - 从 .NET 应用程序间接调用 CoInitializeSecurity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7637273/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com