efdf 发表于 2015-11-3 10:23:18

VS2008/2010在64位Windows平台上编译ArcEngine导致HRESULT:0x80040154 (REGDB_E_CLASSNOTREG)错误

  VS2008 在64位的系统(XP/Vista/Win7均是)中编译ArcEngine(9.3SP1)并运行时提示:
  没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
  
  原因:ArcEngine9.3没有原生支持64位,而是以32位兼容方式运行
  解决办法:在项目属性里设置“生成”=>“目标平台”为x86而不是默认的ANY CPU.
  
  
  ESRI官方也是这么解决的:
  http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&d=33000
  
  Bug:Error: Class not registered(Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)Article ID:33000Bug Id:NIM007516Software: ArcGIS Engine Runtime 9.2, 9.3Platforms: Windows 2000, XP
Description
Running an application from Visual Studio 2005 on 64-bit computers, displays the following error message:

"Error : Class not registered(Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)"  
Cause
When running a Visual Studio application, the default Common Language Runtime (CLR) platform in the Visual Studio is set to Any CPU. This default must be changed on 64-bit computers to compile the assemblies with the 32-bit, x86 compatible CLR.  
Workaround
Change the default Platform Target CPU to allow applications to run on 64-bit machines:


[*]Right-click on the solution in the Visual Studio Solution Explorer and open the Properties window.
[*]Click the compile tab: Visual Basic, or the build tab: Visual C#.
[*]For Visual Basic, click the Advanced tab.
[*]Select x86 as the Target CPU (Visual Basic) or Platform Target (Visual C#).
[*]Rebuild the solution.
  
  Created: 5/4/2007
Last Modified: 10/30/2009
  
         版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: VS2008/2010在64位Windows平台上编译ArcEngine导致HRESULT:0x80040154 (REGDB_E_CLASSNOTREG)错误