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

      

  • 相关阅读:
    加班的价值
    webApp 阅读器项目实践
    Oak Seeds 网站项目回顾
    [Echarts]用Echarts绘制饼状图
    [转载] 编程每一天(Write Code Every Day)
    对杀毒软件技术的浅浅理解
    记我的第二次自动化尝试——selenium+pageobject+pagefactory实现自动化下单、退款、撤销回归测试
    学习Selenium遇到的问题和解决方案
    记我的第一次自动化尝试
    jmeter环境配置、使用以及参数化之CSV Data Set Config
  • 原文地址:https://www.cnblogs.com/XiaoGuanYu/p/13082031.html
Copyright © 2011-2022 走看看