extern "C" void __declspec(dllexport) void CenterObject(void)
{
}
DLL: что есть .def ?
Столкнулся с проблемой:
пишу ДЛЛ(первый раз), в числе функций - void CenterObject(void); линкер искажает имена, получается ?CenterObject@@YAXXZ - как следствие трудно читать код, да и не уверен, что ДЛЛ,написанные на других платформах вобще будут работать... :(
Читал, что можно исправить имя в файле .def (что-то типа Center = ?CenterObject@@YAXXZ ), но мой VC6, по моему, .def не создаёт.
Вобщем, нужен совет: как присвоить экспортируемым ДЛЛ функциям "человеческие имена"
Цитата:
да и не уверен, что ДЛЛ,написанные на других платформах вобще будут работать...
Будет.
Если вы используете только __declspec(dllexport)/__declspec(dllimport) и не планируете использовать LoadLibrary/GetProcAddress, то почему бы и нет? В исходниках всё равно используются нормальные имена.
Можно обойтись без DEF файла и писать так.
Код:
А для использования DEF файла просто добавьте в проект обычный текстовый файл с расширением DEF, и напишите в нем
Код:
LIBRARY mydll
EXPORTS
CenterObject
EXPORTS
CenterObject
Всё.
Цитата:
Originally posted by srd
Если вы используете только __declspec(dllexport)/__declspec(dllimport) и не планируете использовать LoadLibrary/GetProcAddress, то почему бы и нет?
Если вы используете только __declspec(dllexport)/__declspec(dllimport) и не планируете использовать LoadLibrary/GetProcAddress, то почему бы и нет?
Планирую... сорри - зыбыл написать, непременное условия - явный вызов ДЛЛ.
Цитата:
Originally posted by srd
А для использования DEF файла просто добавьте в проект обычный текстовый файл с расширением DEF, и напишите в нем
Всё.
А для использования DEF файла просто добавьте в проект обычный текстовый файл с расширением DEF, и напишите в нем
Код:
LIBRARY mydll
EXPORTS
CenterObject
EXPORTS
CenterObject
Всё.
Большое спасибо за ответ!, пошёл юзать...
Всё работет, ещё раз большое спасибо то srd, удачи.