我有一个正在调用 C++ 方法的 C# 方法。 C++ 方法使用 WMI,因此在进行 WMI 选择之前它会调用
CoInitializeEx(0, COINIT_MULTITHREADED)
,然后调用 CoInitializeSecurity
等...。
我的问题,CoInitializeEX
,如果失败并显示代码 2147417850 (RPC_E_CHANGED_MODE
)
我尝试从 C# 创建一个新的 STA 线程,并从该线程调用 C++ 方法(并且我禁用了 Visual Studio 托管进程),
CoInitilalize
中不再出现错误,但CoInitializeSecurity
中发生错误(2147417831, RPC_E_TOO_LATE
)。
纠正这一切的最佳解决方案是什么?
我删除了两个电话,问题解决了。