avalex
Junior Member / Новичок
Участник № / Member № 874
отправлено / posted
Из описания: "DLL описания носителя (mediaN.dll) должна экспортировать функции по именам, причем имена должны быть декорированными в стиле MS Visual C++. Добиться этого можно, используя DEF файл."
Каким образом это можно сделать?
Должно быть так: ?CloseMedia@@YAHAAJ@Z Получается так: @CloseMedia$qrl
Переопределение имени функции в DEF-файле типа EXPORTS ?CloseMedia@@YAHAAJ@Z=@CloseMedia$qrl не проходит, т.к. компановщик Borland не воспринимает символ '?'.
Сообщения / Posts 5 | Из / From: Russia
| IP / IP: IP адрес / IP address |
отправлено / posted
В документации допущена неточность, файл описания носителя (mediaN.dll) должен экспортировать функции не по именам, а, так же как и файлы t11 и t12, по порядковым номерам. Для создания библиотеки нужного вида не обязательно использовать DEF-файл, достаточно просто объявить функции как экспортируемые. Т.о. в проекте типа DLL в CPP-файле пишется так: (порядок следования функций - алфавитный, в том же порядке они будут экспортированы)
int __export ReadMedia(long &hndl, char *rbuf, int in_count, int &actual_count) { return 0; }
int __export StartMedia(long &hndl) { return 0; }
int __export StopMedia(long &hndl) { return 0; }
int __export WriteMedia(long &hndl, char *sbuf, int out_count, int &actual_count) { return 0; }
////////////////////////////////////////////////////////////////////////////// #pragma argsused BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved) { return TRUE; } //---------------------------------------------------------------------------
Сообщения / Posts 17314 | Из / From: Россия
| IP / IP: IP адрес / IP address |