C# GoogleEarth Win7 64位 Interop.EARTHLib 没有注册类

来源:互联网 发布:数据质量分析工具 编辑:程序博客网 时间:2024/05/21 08:39

 

操作系统:Windows 7旗舰版 Service Pack 1

系统类型:64位操作系统

开发环境:VS2008

开发语言:C#

框架:netFrameWork3.5

目的:c#调用Interop.EARTHLib.dll出现的错误


错误类型描述:
无法将类型为“EARTHLib.ApplicationGEClass”的 COM 对象强制转换为接口类型“EARTHLib.IApplicationGE”。此操

作失败的原因是对 IID 为“{2830837B-D4E8-48C6-B6EE-04633372ABE4}”的接口的 COM 组件调用 QueryInterface 因

以下错误而失败: 没有注册类别 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。


引发错误的原因:
64位系统下,有些组件(微软的)只有32位版本,64位的应用程序调用不了32位的COM组件,返回的结果就是没有注册类

别。 在64位系统中,VS2008默认会生成64位的程序,你可以改变程序的部署平台为×86来生成32位的程序。

解决方法:
在“解决方案”-》“开发项目的名称”,鼠标右击,单击“属性”-》“生成”-》“目标平台”,把“AnyCPU”改成“

×86”,重新编译程序即可。

 

原创粉丝点击