码迷,mamicode.com
首页 > 其他好文 > 详细

无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型,原因为没有注册类

时间:2015-12-05 15:46:47      阅读:543      评论:0      收藏:0      [点我收藏+]

标签:

错误描述

e = {"无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“OpcRcw.Da.IOPCServer”。此操作失败的原因是对 IID 为“{39C13A4D-011E-11D0-9675-0020AFD8ADB3}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。"}
无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“HaiGrang.Package.OpcNetApiChs.DaInterface.IOPCServer”。此操作失败的原因是对 IID 为“{39C13A4D-011E-11D0-9675-0020AFD8ADB3}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。

原因和解决方法

64位系统下,有些组件(微软的)只有32位版本,64位的应用程序调用不了32位的COM组件,返回的结果就是没有注册类
别。 在64位系统中,VS2008默认会生成64位的程序,你可以改变程序的部署平台为×86来生成32位的程序。
解决方法:
在“解决方案”-》“开发项目的名称”,鼠标右击,单击“属性”-》“生成”-》“目标平台”,把“AnyCPU”改成“
×86”,重新编译程序即可。



无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型,原因为没有注册类

标签:

原文地址:http://www.cnblogs.com/wene/p/5021508.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!