Я пытаюсь вызвать некоторые функции в DLL, скомпилированной (я верю) из Visual C ++ из моей программы, скомпилированной с помощью GCC.
Чтобы вызвать функции в DLL, я делаю LoadLibrary () для DLL, а затем GetProcAddress (), чтобы получить адрес конкретной функции, которую я затем вызываю. Эта функция возвращает список указателей на функции в той DLL, которую я вызываю.
Ну, когда я пытаюсь вызвать эти функции, они не работают должным образом. Я прогнал мою программу через отладчик, и похоже, что функция библиотеки DLL ищет один из переданных аргументов в ebp + 8, хотя GCC поставил его в ebp-24.
Это определенно похоже на проблему стека. Более того, когда программная функция GCC, которая вызывает функцию DLL, возвращается, моя программа аварийно завершает работу, поэтому в стеке происходит что-то неуверенное. Кто-нибудь знает, что мне нужно сделать, чтобы это исправить? Я не могу получить доступ к коду DLL.
Также: я попытался поместить __cdecl и __stdcall до определения функции DLL в исходном файле моей программы, но это ничего не меняет.