c# - 使用 COM 接口(interface)时出现 System.InvalidCastException

标签 c# com

我写了一个 atl COM dll,dual。并在 C# GUI 项目中使用了它的一个 intreace X。调用 X.F() 时,出现 System.InvalidCastException,无法将 namespace.XClass 转换为 namespace.IX,QueryInterface 失败:BADTYPE。这个电话是在我自己的线程中。

如果我将代码移动到 GUI 线程,它工作得很好。

请帮助我。非常感谢。

最佳答案

COM 对象通常是 STA,这意味着它们只能由创建它们的线程使用

关于c# - 使用 COM 接口(interface)时出现 System.InvalidCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2003982/

相关文章:

c# - 如何初始化虚拟自动属性?

c# - 从 .Net 调用 Visual FoxPro COM 对象(进程外)时出现 RPC_E_SERVERFAULT?

visual-studio-2010 - COM - #include 生成的 header 与 #import 生成的 tlb

delphi - 跨进程单例对象

multithreading - 旧版 VB6 COM+ DLL 调用 native Win32 DLL——STA 的线程问题?

c# - 创建规则以对参数属性强制执行默认值

c# - 将 `DataGrid` 替换为 `GridView` 时我们必须更改哪些内容?

c# - 经常调用的方法中的新临时变量

c# - 在 wpf 数据网格中动态添加复选框列

c++ - COM exe、C++ 和 MinGW