Я написал DLL на Delphi, которая экспортирует функции. Я хотел бы использовать эти функции в программе на C ++ без использования динамического связывания (LoadLibrary () API-Call).
Декларация "импорт" будет
extern "C" int __stdcall getVersionNumber();
В основном я использую Bloodshed Dev-C ++, который создает исполняемые файлы Windows. Но я не знаю, как сказать компилятору, что он должен импортировать функцию getVersionNumber из STATMONDLL32.dll.
После того, как я потратил много часов на поиски проблемы без каких-либо результатов (были только странные вещи, написанные о файлах .a и .lib, которые я не скомпилировал с помощью Delphi ...), я также установил VC ++, но даже там , Я не смог найти способ указать компилятору использовать конкретную DLL.
Я создал файл DEF для этой библиотеки DLL - как я могу сказать Dev-C ++ и / или VC ++ использовать его? (Предпочтительнее Dev-C ++)
// Редактировать: Delphi создает НЕУКРАШЕННЫЕ символы. Это в точности символ getVersionNumber.
Я создал следующий файл DEF с псевдонимом для украшения:
LIBRARY STATMONDLL32
EXPORTS
getVersionNumberA = _getVersionNumberA@0
Я создал файл * .lib с VC ++ "lib.exe":
lib.exe /DEF:StatMonDll32.def /OUT:StatMonDll32.lib
Я включил библиотеку в настройки компоновщика VC ++.
Но VC ++ сообщает мне, что не может разрешить внешний символ _getVersionNumberA @ 0! Пожалуйста помоги!
// Изменить: я загрузил DLL сюда: http://www.viathinksoft.de/temp/StatMonDll32.dll. Можете ли вы получить доступ к символу getVersionNumberA с помощью VC ++? Ищу решение уже 6 дней: '- (
С наилучшими пожеланиями
Дэниел Маршалл