zoukankan      html  css  js  c++  java
  • [转]VS2008在64位Windows平台上编译ArcEngine导致HRESULT:0x80040154 (REGDB_E_CLASSNOTREG)错误的解决办法

    VS2010在WIN7 X64上编译以前在x84 XP上的Skyline程序遇到同样问题,参照如下此贴解决。

    ---------------------

    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: 33000
    Bug Id: NIM007516
    Software:  ArcGIS Engine Runtime 9.2, 9.3
    Platforms:  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:
    1. Right-click on the solution in the Visual Studio Solution Explorer and open the Properties window.
    2. Click the compile tab: Visual Basic, or the build tab: Visual C#.
    3. For Visual Basic, click the Advanced tab.
    4. Select x86 as the Target CPU (Visual Basic) or Platform Target (Visual C#).
    5. Rebuild the solution.

    Created: 5/4/2007
    Last Modified: 10/30/2009

  • 相关阅读:
    scrapy通过修改配置文件发送状态邮件
    python高级编程读书笔记(一)
    linux,mac安装sentry
    mac安装sentry
    pop3设置
    流程图
    车险或将二次费改 又可以省钱了?
    ATM:模拟实现一个ATM + 购物商城程序
    作业1开发一个简单的python计算器
    re正则表达式
  • 原文地址:https://www.cnblogs.com/flyingfish/p/1842044.html
Copyright © 2011-2022 走看看