Автоматически создавать файл DLL .DEF в Visual Studio?

Есть ли способ автоматически сгенерировать файл DEF для DLL в Visual Studio? Раньше я всегда просто создавал их вручную, но должен быть более простой способ.


person Adam Haile    schedule 01.02.2010    source источник
comment
Да, это возможно с новейшей версией CMake. Посмотрите на мой ответ для уточнения: stackoverflow.com/a/32284832/3001953   -  person Maks    schedule 29.08.2015


Ответы (3)



Проще говоря: напишите сценарий, который соответствует вашим потребностям. Я, например, в какой-то момент создал небольшой Perl-скрипт для создания .def файла из существующей библиотеки DLL, который затем будет использоваться для создания из нее библиотеки импорта (.lib).

Причина, по которой нет инструмента для чтения и использования, который делает это за вас, заключается в том, что ни один из задействованных инструментов не может угадать или каким-то образом телепатически определить, какие функции, переменные, константы или классы вы хотите экспортировать и под какими именами.

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

Также см. этот вопрос. Вы заметите, что ответ также включает в себя собственный скрипт. В этом случае требование, по-видимому, состоит только в том, чтобы разобрать и экспортировать имена любых и всех нестатических функций.

person 0xC0000022L    schedule 17.05.2012

Смотрите ответ с демонстрационным проектом здесь:

https://stackoverflow.com/a/64302521/2338477

Я включил скрипт Python для создания файла .def из статической библиотеки, но, к сожалению, он не работает с переменными/данными.

person TarmoPikaro    schedule 11.10.2020