zoukankan      html  css  js  c++  java
  • c++ dll 0xc000007b 和 System.BadImageFormatException: 试图加载格式不正确的程序。 (Exception from HRESULT: 0x8007000B)

    c++ dll 0xc000007b System.BadImageFormatException: 试图加载格式不正确的程序。 (Exception from HRESULT: 0x8007000B)

     

            1.vc++运行库问题

        建议下载微软运行库2005-2019  x86/x64 都需要安装

      2.net framework

        建议下载到最新版本

           3.x86 x64 架构引起

         x86dll/x64dll 这里指其他的sdk的库

        在vs中,有些时候会出现程序同时加载x86dllx64dll 同时运行的情况,

        如何出现这中情况,那么是可以运行的,但是‘程序移植’到其他平台会发现,这中环境,同时运行x86x64 同时运行,情况很少。

        ’笔者,也没搞懂这个问题‘

      正常情况:

        x86只能加载运行x86dll

        x64只能加载运行x64dll

      VS2019 example

        选择当前项目 -> 属性

        配置:可以选择debug‘和’release‘和’所有配置‘

        笔者这里选择’所有配置‘

        我这里的dllx64 所以选择64

     

       编译运行即可。

     4.以上还不能解决如果c++demo调用 c/c++ sdk x86x64dll不兼容会出现

     

     5 如果’c#’或’其他高级语言’调用’ c/c++ sdk x86x64’不兼容会出现如下情况

    笔者这里以c#example

    System.BadImageFormatException: 试图加载格式不正确的程序。 (Exception from HRESULT: 0x8007000B)

     

    基本可以确定是c++sdkx86x64平台不兼容问题引起的。如果修改了x86运行和x64运行还不行的话只能通过工具,将c++sdk 一个一个打开检 发现x86x64 那个地方不兼容,替换即可。

    Dependencies 这个工具

    如下 这个工具提供一个一个gui界面 和一个直接查看显示dll的平台

     

    如果找不到问题那么就一个一个sdk测试把。

    gui界面

     

    单个

     

    最终补充

    笔者这里就出现了,x86和x64同时都可以运行的情况。所以笔者本机可以跑,在其他平台上,上面2中异常基本都出现过。笔者这里解决的办法,将x86dll全部使用x64替换就完成了。

      

  • 相关阅读:
    weblogic详解
    Java中常见的5种WEB服务器介绍
    Eclipse 插件ibeetl
    Eclipse安装svn插件的几种方式
    在 Laravel 应用中使用 pjax 进行页面加速
    Pjax无刷新跳转页面实现,支持超链接与表单提交
    emlog通过pjax实现无刷新加载网页--完美解决cnzz统计和javascript失效问题
    PJAX全局无刷新的设置方法~
    pjax使用小结
    jQuery+pjax简单示例汇总
  • 原文地址:https://www.cnblogs.com/XiaoGuanYu/p/13082031.html
Copyright © 2011-2022 走看看