试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)

2023-05-16

两种原因:

第一种为程序的运行以平台系统位数不匹配,第二种则是该死的VS整出来的...

一般在下面三种情景下会发生.

1.64位系统上C#调用32位的C++ *.dll

2.64位系统上IIS发布含有32位的 *.dll应用程序时

3.64位系统上编写C++ *.dll,在64位系统上通过 C#调用 ,可能成功,也可能失败,失败就报BadImageFormatException 异常,也是最二的一种情况.是由该死的VS整出来的

 

解决方法如下:

1.VS在64位系统下面,编译调试某个C++的API的时候,报错:未处理BadImageFormatException 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)

详见下图:

 

    其原因是该API是在32位系统下面开发的,在64位系统上面开发编译的时候需要将生成的目标平台设为X86

    方法是:

    在右边的“解决方案资源管理器”里,右键该项目点击属性。在属性窗口里选择“生成”——“目标平台”下拉里选中“X86"即可。见下图:

 

  然后保存重新编译

 

原因:程序集之间的通讯要么全是64位环境下的,要么全是32位环境下的。不能混编访问。不然会出现“试图加载格式不正确的程序”的错误;

解决办法是把发布网站的程序池开通32位兼容性即可,如下图:

 

3.如果上面的没有解决,那就是VSC#工程的问题,打开对应的工程文件(*.csproj),如下图<Prefer32Bit>false</Prefer32Bit>节点

 

下面是MSDN的解释:

CSharpProjectConfigurationProperties6.Prefer32Bit 属性

获取或设置一个标志,指示是否首选的 32 位平台。

命名空间:  VSLangProj110

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B) 的相关文章

  • 为什么在telnet登入界面下没有日志输出?

    1 每个进程的输入输出导向目标都可以在进程号下的fd软链接上查看 如 569号进程的输出目标是 dev console xff0c 即串口 其中0是标准输入 xff0c 1是标准输出 xff0c 2是标准错误输出 2 因此我们只需要查看te
  • 【无标题】

    1 将虚拟地址传入到内核态 xff0c 借助内核态中mm struct结构体的pgd页表基地址成员 xff0c 经过查页表的方式最终获取到物理地址 这种方法虽然很直观 xff0c 但是一会内核态 xff0c 一会用户态 xff0c 操作起来
  • C#串口=>发送和接收

    作用 xff1a 串口发送命令后 xff0c 等待下位机应答帧 代码 xff1a 一旦读取到数据就立即返回给上层 public string TXandRX byte buffer string data 发送 RS485专用 start
  • kprobe功能的代码实现

    1 可以借助 sys kernel debug tracing目录下的文件 xff0c linux提供了kprobes功能 xff0c 抓取内核函数中的入参和返回值 kprobes xff0c 强大的调试工具 sydyh43的博客 CSDN
  • 上位机使用C++通过ADS协议与倍福PLC通信例程-通过变量名方式读写浮点数

    前言 建议初学者先看这一章节内容 xff0c 里面包括一些基础的环境配置和项目建立流程 xff0c 以后开发项目这些流程是通用的 xff0c 务必掌握并熟练 链接 上位机使用C 43 43 通过ADS协议与倍福PLC通信例程 布尔变量的读取
  • 弄清USART串口的使能位(UE、TCIE、RXNEIE)和标志位(TC、RXNE)

    下面通过485半双工的通信过程 xff0c 记录USART串口的几个使能位 标志位 说明 xff1a USART IT TC 和 USART IT RXNE是一个常量 xff0c 并不代表 xff08 TC RXNE 这两位 define
  • 机器人视觉检测+跟踪:行人跟随过程中对目标提取特征+匹配

    今天上午也是没有很大的成效 xff0c 一直到下午睡醒 xff08 论好的睡眠的重要性 xff09 xff0c 在一篇帖子中看到一种新的写法 xff0c opencv3将IplImage转换为Mat格式的写法 xff0c 在我们的代码中采用
  • ubuntu firefox打不开网页

    检查ubuntu右上角联网开关是否打开 xff1a 需要勾选Enable Networking 如果能ping通其它主机地址 xff0c 浏览器却上不了网 xff0c 很有可能是dns域名解析的问题 查看域名配置文件 xff1a cat e
  • Java如何利用JNI调用C++(简略介绍及步骤)

    Java如何利用JNI调用C 43 43 xff08 简略介绍及步骤 xff09 文章目录 Java如何利用JNI调用C 43 43 xff08 简略介绍及步骤 xff09 一 原理介绍二 详细步骤步骤一 xff1a 编写Java类步骤二
  • HttpParser解析节点遇到的不解问题

    HttpParser遇到table时 xff0c 解析时 xff0c 直接抽取th或者td xff0c thead和tbody解析或出现异常 比如 lt table gt lt thead gt lt tr gt 相关内容 lt tr gt
  • CMakeLists 理解

    CMakeLists 理解 最近发现其实之前对CMakeLists 理解不是很全面 xff0c 零零散散在网上看到的一些教程 xff0c 其实都是为了解决某个命令的问题 xff0c 要不然就是对一些命令的翻译理解 xff0c 实际上是很劝退
  • sip协议之注册说明

    注册是SIP协议中重要的功能 xff0c 所谓注册 xff0c 就是用户A客户端将自己的联系地址告知服务器 xff0c 以便后续有其它用户呼叫用户A时 xff0c 服务器能够将呼叫转接到用户A SIP协议中的联系地址是指由账号 IP POR
  • 9v输入7.4v电路充电IC

    9v输入7 4v电路充电IC 两节串联的锂电池 xff0c 一般电压是7 4V xff0c 最高电压到8 4V xff0c 最低放电到6V左右 如果需要6V 8 4V降压到5V的DC DC降压芯片 xff0c 一般是用FS2953 如果需要
  • Java 和 C++ 语法之间的区别

    main 方法 Java java 的函数必须写在类里 class HelloWorld public static void main String args System out println 34 Hello World 34 复制
  • STM32串口中断接收不定长报文并解析

    文章目录 功能实现背景介绍HAL库的中断接收函数状态机的运用 功能实现背景介绍 本项目中 xff0c 需要使用STM32的USART6串口与FPGA板 xff08 下位机 xff09 通信 xff0c 需要发送和接收数据 xff0c 有报文
  • STM32 CubeMX 看门狗

    文章目录 看门狗STM32的内置看门狗WWDG 窗口看门狗CubeMX操作步骤1 xff09 使能 WWDG时钟2 xff09 设置窗口值 分频数 和计数器初始值3 xff09 开启 WWDG4 xff09 使能中断通道并配置优先级 xff
  • 最详细的 UART协议 分析在这里!

    1 协议基础 1 1 协议简介 UART是 Universal Asynchronous Receiver Transmitter xff0c 通用异步收发器的缩写 在19世纪60年代 xff0c 为了解决计算机和电传打字机通信 xff0c
  • MySQL在表中插入中文时报错:ERROR 1366 (HY000)/ Incorrect string value/ '\xE6\x9D\x8E\xE5\x8B\x87' for column 'S

    一 错误提示 ERROR 1366 HY000 Incorrect string value xE6 x9D x8E xE5 x8B x87 for column Sname at row 1 二 过程描述 1 创建如下表 建立一个学生表
  • Mac下eclipse的安装与配置

    1 确认是否安装了Java开发环境 JDK 打开Terminal xff0c 输入 xff1a java version macdeMacBook span class token operator span Pro span class
  • git clone 指定私钥文件

    当默认的私钥不对的时候 xff0c 一般会有类似报错 xff1a git clone git 64 Cloning into Permission denied publickey fatal Could not read from rem

随机推荐