Функция экспорта из DLL - использовать файл DEF или dllexport? - PullRequest
3 голосов
/ 23 июля 2010

Файлы определения модуля (.def) предоставляют компоновщику информацию об экспорте, атрибутах и ​​другую информацию о программе, которая будет связана.Файл .def наиболее полезен при сборке DLL.Поскольку существуют параметры компоновщика, которые можно использовать вместо операторов определения модуля, файлы .def обычно не нужны.Вы также можете использовать __declspec (dllexport) как способ указать экспортируемые функции.

http://msdn.microsoft.com/en-us/library/28d6s79h%28VS.80%29.aspx

Мне было интересно, стоит ли нам предпочитать .def способ?или dllexport способ?

Ответы [ 2 ]

2 голосов
/ 23 июля 2010

Файлы определения модуля (.def) предоставляют нам большую гибкость в определении способа экспорта данных.

Например, экспортируемая функция может быть анонимной (идентифицируется по порядковому номеру), что не позволяет людям без информации об объявлении использовать ее.

Она также может выполнять переадресацию / перенаправление функций, как указано ниже:
http://msdn.microsoft.com/en-us/library/hyx1zcd3(v=VS.80).aspx

2 голосов
/ 23 июля 2010

Если вы планируете, чтобы пользователи использовали вашу DLL в Visual Basic (не VB.NET), тогда вы можете выбрать использование файла .DEF.Visual Basic требует, чтобы функции использовали соглашение о вызовах stdcall, а имена экспортированных функций stdcall отмечены подчеркиванием (_).Вы можете переопределить это оформление имени функции, явно указав имя функции в файле .DEF.

Для получения дополнительной информации: http://msdn.microsoft.com/en-us/library/dt232c9t%28VS.90%29.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...