调用第三方控件出现“试图加载格式不正确的程序”原因与解决办法

      近期我们公司HIS软件在调用第三方合理用药系统的时候 ,XP系统上运行正常,而到了WIN7 系统上出现“试图加载格式不正确的程序”这个错误。  医院实施立刻把问题推到我的头上,没办法 誰让错误报在咱页面上了呢。 于是拿到错误开始分析问题。

       首先软件在XP上是没问题的,那么代码很可能就是没问题的,那么为什么会在WIN7报错了,我第一点想到的是很可能跟操作系统有关,果断询问现场,得到反馈"win7是64位的操作系统,XP是32位的".  那么问题来了,我的程序编译的时候目标平台选择的是 “Any CPU”,也就是说在32位系统上程序会变成32位程序 而在64位上会自动变成64位程序。那么为什么还会报错呢?

       然后我百度了一下这个错误,博客园前辈给出了原因,我觉得很正确“

问题是因为64位进程试图加载一个32位组件。虽然在Windows x64上可以运行64位和32位进程,但是64位代码和32位代码不能在相同进程上运行。代码要么全部是64位,要么全部是32位。要加载的组件也要符合这一规律。

所以最好都是x86编译,或者x64编译程序 

”   得到问题原因以后   我怀疑是第三方的问题,于是拿到第三方的开发QQ,询问之下  果然他们的目标平台是 32位,而我们的是anyCPU  所以不能在同一个进程中,故报错!    

  OK  找到了  错误原因,这个应该完全是第三方原因,如果我们每软件的目标平台都是ANY cpu的话 就不会出现兼容问题了,但是对方好像不太愿意改,不管了  让实施去沟通吧  反正我是不会改的。。。。。

原文地址:https://www.cnblogs.com/fd522858029/p/4208438.html