Мне нужно вызвать функцию C ++ DLL из C #, определение функции C ++ равно
DWORD Init(char*[],int,int,int);
и я называю это в C #, вот так
[DllImport("DLLTest.dll")]
unsafe public static extern int Init(string[] detailsarray, int amount, int ID1, int ID2);
//then in main...
string[] details = new string[3];
details[0] = "blahblah";
details[1] = "bloobloo";
details[2] = "1234";
int result = Init(details, 1, 16, 170);
При запуске я получаю необработанное исключение типа System.BadImageFormatException. Я считаю, что нормально проходить через строки, когда C ++ DLL ожидает char * s, и я также думаю, что это нормально - использовать int в C # вместо DWORD в C ++, но, если я прав, пожалуйста, дайте мне знать.
Спасибо.
РЕДАКТИРОВАТЬ - я должен добавить, я проверил DLL в приложении C ++, и она отлично работает.