C# 线程调用c++ com组件

guoweijun394 2009-05-07 10:31:04
C# 调用一个COM接口 可以实现。改成使用一个线程去调用这个接口时出现以下错误:
无法将类型为“CC.DataProcessClass”的 COM 对象强制转换为接口类型“CC.IDataProcess”。此操作失败的原因是对 IID 为“{640FF122-13B4-4406-A8D6-4DBFAA8A4728}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 不支持此接口 (异常来自 HRESULT:0x80004002 (E_NOINTERFACE))。

请问是COM那边处理呢 还是C#这边处理 ,如何处理,这是什么原因呢? 谢谢~!!
...全文
99 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
whushuguang 2009-05-07
  • 打赏
  • 举报
回复
用 这个 类 试试 , 线程池 WaitCallback
蓝海D鱼 2009-05-07
  • 打赏
  • 举报
回复
up
guoweijun394 2009-05-07
  • 打赏
  • 举报
回复
顶下
guoweijun394 2009-05-07
  • 打赏
  • 举报
回复
噢谢谢
我以及设置线程ApartmentState = ApartmentState.STA; 这样还是不行
wrinky 2009-05-07
  • 打赏
  • 举报
回复
线程调用COM会碰到同步的问题。我一般都是用[STAThread]避免的。

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧