【发布时间】:2010-07-16 14:42:53
【问题描述】:
我有一个调用 C++ 方法的 C# 方法。 C++ 方法使用 WMI,因此它调用 CoInitializeEx(0, COINIT_MULTITHREADED) 然后调用 CoInitializeSecurity 等...在选择 WMI 之前。 我的问题,CoInitializeEX 如果代码 2147417850 (RPC_E_CHANGED_MODE) 失败
我尝试从 c# 创建一个新的 STA 线程并从该线程调用 c++ 方法(并且我禁用了 Visual Studio 托管进程),CoInitialize 中不再出现错误,但错误发生在 CoInitializeSecurity 中(2147417831,RPC_E_TOO_LATE)。
纠正这一切的最佳解决方案是什么?
【问题讨论】:
-
CoInitializeSecurity 已被调用。它可能发生在某些库初始化或晦涩的地方,您必须对其进行追踪。如果您告诉我们您正在使用哪些库,SO 中的人可能会提供帮助。 tech-archive.net/Archive/VC/microsoft.public.vc.atl/2004-12/…
-
似乎删除这两个调用可以解决问题?
标签: c++ com multithreading