【问题标题】:pinvoke c function - System.BadImageFormatExceptionpinvoke c 函数 - 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 位。
  • 是的,就是这样。谢谢。将其添加为答案。

标签: c# c++ c pinvoke dllimport


【解决方案1】:

调用本机方法时,您应该将您的 c# 代码显式编译为 64 位或 32 位。

 project/properties/build/Platform target

【讨论】:

    【解决方案2】:

    使用Dependency Walker 检查“验证”函数是否正确地从 DLL 导出。 您可能尚未更新 DLL 项目的 .def 文件。

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 2010-09-27
      • 2021-02-19
      • 1970-01-01
      • 2011-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多