Есть ли способ автоматически сгенерировать файл DEF для DLL в Visual Studio? Раньше я всегда просто создавал их вручную, но должен быть более простой способ.
Автоматически создавать файл DLL .DEF в Visual Studio?
Ответы (3)
Я нашел место для создания файла .DEF здесь: expdef - генератор файла def< /а>
Это работает потрясающе и имеет список параметров, которые вы также можете сгенерировать, помимо имен методов функций и символов.
Проще говоря: напишите сценарий, который соответствует вашим потребностям. Я, например, в какой-то момент создал небольшой Perl-скрипт для создания .def
файла из существующей библиотеки DLL, который затем будет использоваться для создания из нее библиотеки импорта (.lib
).
Причина, по которой нет инструмента для чтения и использования, который делает это за вас, заключается в том, что ни один из задействованных инструментов не может угадать или каким-то образом телепатически определить, какие функции, переменные, константы или классы вы хотите экспортировать и под какими именами.
Как вы, возможно, знаете, файлы определения модулей позволяют изменить способ отображения внутреннего имени в таблице экспорта, позволяют экспортировать по порядковому номеру (вместо имени) или по имени и порядковому номеру. Конечно, они также позволяют экспортировать функцию несколько раз (например, старое имя из-за устаревших целей поддержки и более новое, потому что теперь оно следует некоторому соглашению).
Также см. этот вопрос. Вы заметите, что ответ также включает в себя собственный скрипт. В этом случае требование, по-видимому, состоит только в том, чтобы разобрать и экспортировать имена любых и всех нестатических функций.
Смотрите ответ с демонстрационным проектом здесь:
https://stackoverflow.com/a/64302521/2338477
Я включил скрипт Python для создания файла .def из статической библиотеки, но, к сожалению, он не работает с переменными/данными.