У меня есть двоичный файл - статическая библиотека Windows (* .lib).
Есть ли простой способ узнать имена функций и их интерфейс из этой библиотеки?
Нечто подобное emfar
и elfdump
утилиты (в системах Linux)?
windows
static-libraries
libraries
Ник Бородулин
источник
источник
Ответы:
Предполагая, что вы говорите о статической библиотеке,
DUMPBIN /SYMBOLS
показывает функции и объекты данных в библиотеке. Если вы говорите о библиотеке импорта (.lib
используется для обозначения символов, экспортируемых из DLL), то вы хотитеDUMPBIN /EXPORTS
.Обратите внимание, что для функций, связанных с двоичным интерфейсом «C», это все равно не даст вам возвращаемых значений, параметров или соглашения о вызовах. Эта информация вообще не закодирована
.lib
; Вы должны знать это заранее (например, через прототипы в заголовочных файлах), чтобы правильно их вызывать.Для функций, связанных с двоичным интерфейсом C ++, соглашение о вызовах и аргументы кодируются в экспортированном имени функции (также называемом «искажение имени»).
DUMPBIN /SYMBOLS
покажет вам как «искаженное» имя функции, так и декодированный набор параметров.источник
Откройте визуальную командную консоль (командная строка Visual Studio)
или
или просто откройте его с помощью 7-zip :) его архив AR
источник
Я хотел инструмент, как
ar t libfile.a
в Unix.Окна эквивалентны
lib.exe /list libfile.lib
.источник
"dumpbin -exports" работает для dll, но иногда может не работать для lib. Для lib мы можем использовать «dumpbin -linkermember» или просто «dumpbin -linkermember: 1».
источник
LIB.EXE - библиотекарь для VS
http://msdn.microsoft.com/en-us/library/7ykb2k5f(VS.80).aspx
(как libtool в Unix)
источник
DUMPBIN / EXPORTS получит большую часть этой информации, а остальное получит MSDN.
Получить один из пакетов Visual Studio; C ++
источник
1) Откройте Командную строку разработчика для VS 2017 (или любой другой версии на вашем компьютере) (она должна находиться в: меню Пуск -> Все программы -> Visual Studio 2017 (или любой другой версии на вашем компьютере) -> Инструменты Visual Studio -> Командная строка разработчика для VS 2017.
2) Введите следующую команду:
dumpbin /EXPORTS my_lib_name.lib
источник
Как и в других ответах, вам нужно будет открыть командную строку разработчика, предлагаемую в вашей версии Visual Studio, для
dumpbin.exe
указания пути выполнения. В противном случае вы можете установить необходимые переменные среды вручную.dumpbin /EXPORTS yourlibrary.lib
будет обычно показывать только крошечный список символов. Во многих случаях он не отображает функции, которые экспортирует библиотека.dumpbin /SYMBOLS /EXPORTS yourlibrary.lib
покажет эти символы, а также невероятно огромное количество других символов. Таким образом, вы должны отфильтровать их, возможно, с помощью каналаfindstr
(если вам нужен инструмент MS-Windows), илиgrep
.Поиск
Static
ключевого слова с помощью одного из этих инструментов, кажется, хороший совет.источник