最近在做PH项目的时候,遇到了一个小问题。我们做的系统,算是在人家基础上的一个二次开发:我们用到他们设备,同时需要他们给我们提供接口。我们拿到接口,在32位系统上编译不会出问题,而在我这64位系统上编译总是提示错误:
调用 Dll "试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
我一开始的想法是在网上重新找一个的新DLL文件,也就是64位的系统下的DLL文件,然后再注册一下就得了。可喜的是里面有X86和X64两个文件夹。X86里面有一个DLL文件,而X64却是空的。弄得我非常无语,然后我在网上继续找了DLL文件,一个一个的注册,弄了半天也没成功。
问题已经很显然了,就是我的64位开发环境编译32位dll的问题。今天我换了个想法:怎样让它编译成功。问题很容易就解决了。
打开VS,选中你项目的解决方法,右击选择属性(或者Alt+Enter),然后打开生成选项卡,将目标平台改为X86,这样编译出来的就是32位的dll了。同时,如果你的程序中含有关于指针的代码,一般会报错导致你无法编译,这是你需要在本选项卡中勾选“允许不安全代码选项”。