Cod*_*der 33 c# dll dllimport 32bit-64bit badimageformatexception
我有一个DLL(FreeType)肯定是32位(标题:IMAGE_FILE_MACHINE_I386).
我想使用DllImport从C#代码中使用它.
我的应用程序的目标是x86,IntPtr.Size是4,进程是32位.
但我得到BadImageFormatException(HRESULT的异常:0x8007000B).有什么不对?
当然我使用的是64位Windows 7.
Eri*_*ith 41
据我所知,专门为x86构建并在64位操作系统中运行的程序集只能加载为x86构建的库,否则将抛出BadImageFormatException.在64位操作系统中,为Any CPU或x64构建的程序集在尝试加载x86库时会抛出相同的异常.
因此,假设没有发生任何令人难以置信的奇怪现象,我将确保您通过打开项目属性并单击"构建"选项卡将应用程序设置为x86.确保'Platform Target'设置为'x86'而不是任何CPU.
或者,您可以尝试查找64位版本的DLL以进行测试.
从 C# 调用 64 位 C Dll 时遇到相同的错误。我不得不手动更改C#Properties->Build->Platform target从Any Cpu到x64。显然Any Cpu有时是NoCpu。