Как разработчик Xcode, я также должен использовать свой написанный код на Windows.Я думаю, что я успешно справился со всеми кросс-платформенными проблемами, но теперь у меня есть реальная проблема с пониманием ада DLL в Windows.Я использовал свой код с Xcode и Gcc (Ubuntu) успешно.В Windows появляется сообщение об ошибке:
Ошибка проверки времени выполнения # 0 - значение ESP не было должным образом сохранено при вызове функции.Обычно это является результатом вызова функции, объявленной с одним соглашением о вызовах, с указателем функции, объявленным с другим соглашением о вызовах.
Я много читал об этом использовании, но у меня есть проблемы, чтобы понять проблему.Обычно в Windows у меня есть что-то вроде
#define MYLIB_API __declspec(dllimport)
. Я не могу найти это в заголовке Bass Library (bass.h).Есть только одна строка
#define BASSDEF(f) WINAPI f
Теперь я пытаюсь динамически загружать функции DLL в моем коде.Вы можете увидеть динамический заголовок загрузки как ссылку внизу.Чтобы много копировать здесь.Эта динамическая загрузка работает для .dylib и .so libs хорошо, а не для .dll. Моя цель состоит в том, чтобы загружать динамическую, а не статическую DLL с дополнительной библиотекой.
В моем коде я использую bass.h иbassdecode.h.В моем коде я вызываю как образец:
bool returnVar = _BASS_SetConfig(BASS_CONFIG_DEV_DEFAULT,1);
И здесь я получаю сообщение соглашения о вызовах.
Что мне нужно сделать в моем заголовочном файле для успешного импорта функций DLL в Windows?
Вы можете скачать файлы по адресу: заголовочные файлы для загрузки