我有一个 DLL (FreeType),它肯定是 32 位的(标头:IMAGE_FILE_MACHINE_I386)。
我想通过 DllImport 从 C# 代码中使用它。
我的应用程序的目标是x86,IntPtr.Size是4,进程是32位。
但我得到 BadImageFormatException (来自 HRESULT 的异常:0x8007000B)。有什么问题吗?
当然我用的是64位Windows 7。
据我了解,专门为 x86 构建并在 64 位操作系统中运行的程序集只能加载为 x86 构建的库,否则将引发 BadImageFormatException。在 64 位操作系统中,为任何 CPU 或 x64 构建的程序集在尝试加载 x86 库时将引发相同的异常。
因此,假设没有发生任何异常奇怪的情况,我将确保您已通过打开项目属性并单击“构建”选项卡将应用程序设置为构建为 x86。确保“平台目标”设置为“x86”而不是任何 CPU。
或者,您可以尝试查找 DLL 的 64 位版本以进行测试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)