Im trying to call a C function from C# but im getting a BadImageFormatException.

Here is by C function header:

extern "C"
{
    __declspec(dllexport) bool validate(char key[]);
}

Here is how im calling it from C#

[DllImport("MyDll.dll")]
static extern bool validate(char[] key);

Whats wrong here.

有帮助吗?

解决方案

When calling native methods, you should compile your c# code to 64 or 32 bit explicitely.

 project/properties/build/Platform target

其他提示

Use Dependency Walker to check if 'validate' function is correctly exported from DLL. You might have not updated the .def file of the DLL project.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top