pinvoke c 函数 - System.BadImageFormatException
Posted
技术标签:
【中文标题】pinvoke c 函数 - System.BadImageFormatException【英文标题】:pinvoke c function - System.BadImageFormatException 【发布时间】:2014-01-31 17:23:51 【问题描述】:我试图从 C# 调用一个 C 函数,但我得到一个 BadImageFormatException。
这里是C函数头:
extern "C"
__declspec(dllexport) bool validate(char key[]);
这是我从 C# 调用它的方式
[DllImport("MyDll.dll")]
static extern bool validate(char[] key);
这里有什么问题。
【问题讨论】:
尝试显式编译为 64 位或 32 位。 是的,就是这样。谢谢。将其添加为答案。 【参考方案1】:调用本机方法时,您应该将您的 c# 代码显式编译为 64 位或 32 位。
project/properties/build/Platform target
【讨论】:
【参考方案2】:使用Dependency Walker 检查“验证”函数是否正确地从 DLL 导出。 您可能尚未更新 DLL 项目的 .def 文件。
【讨论】:
以上是关于pinvoke c 函数 - System.BadImageFormatException的主要内容,如果未能解决你的问题,请参考以下文章
IndexOutOfRangeException - 无法使用 PInvoke 查看调用堆栈