Вопрос

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