• 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替换就完成了。

      

  • 相关阅读:
    LFI、RFI、PHP封装协议安全问题学习
    Django:(博客系统)添加文章(中文)出现UnicodeEncodeError乱码
    Django:(博客系统)使用使用mysql数据->后台管理tag/post/category的配置
    Spark:性能调优
    Django:(博客系统)使用使用mysql数据&创建post/category/tag实体,并同步到数据中
    C#:多进程开发,控制进程数量
    Django通过pycharm创建后,如何登录admin后台?
    扑克牌游戏研究先告一段落
    Zookeeper通过java创建、查看、修改、删除znode
    ZooKeeper:win7上安装单机及伪分布式安装
  • 原文地址:https://www.cnblogs.com/XiaoGuanYu/p/13082031.html
Copyright © 2020-2023  润新知