Я пытаюсь вызвать функцию C из С#, но im получает исключение BadImageFormatException.
Здесь находится заголовок функции C:
extern "C"
{
__declspec(dllexport) bool validate(char key[]);
}
Вот как им называть его с С#
[DllImport("MyDll.dll")]
static extern bool validate(char[] key);
Что здесь не так.
При вызове собственных методов вы должны скомпилировать свой код С# на 64 или 32 бит.
project/properties/build/Platform target
Используйте Dependency Walker, чтобы проверить, правильно ли экспортирована функция проверки подлинности из DLL. Возможно, вы не обновили файл.def проекта DLL.