Как вы можете исследовать файлы lib?

У меня есть список из 390 библиотек, и мне нужно перенести программное обеспечение из лабораторного CVI на Visual C. Эти зависимости меня убивают.

Я не могу импортировать их все, это было бы излишним - и не все они уникальны и / или могут быть загружены вообще.

Есть ли простой способ определить, какие вызовы выполняет файл lib? Есть ли для этого какие-нибудь редакторы?


person Johannes    schedule 16.12.2010    source источник


Ответы (2)


Программа библиотеки Microsoft LIB.EXE позволяет вам исследовать содержимое библиотеки, если вы спрашиваете о статических библиотеках. Это часть дистрибутива VC ++ или, по крайней мере, раньше - я больше не использую VC ++. Доступны следующие варианты:

Microsoft (R) Library Manager Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

usage: LIB [options] [files]

   options:

      /CONVERT
      /DEBUGTYPE:CV
      /DEF[:filename]
      /EXPORT:symbol
      /EXTRACT:membername
      /INCLUDE:symbol
      /LIBPATH:dir
      /LINK50COMPAT
      /LIST[:filename]
      /MACHINE:{ALPHA|ARM|IX86|MIPS|MIPS16|MIPSR41XX|PPC|SH3|SH4}
      /NAME:filename
      /NODEFAULTLIB[:library]
      /NOLOGO
      /OUT:filename
      /REMOVE:membername
      /SUBSYSTEM:{NATIVE|WINDOWS|CONSOLE|WINDOWSCE|POSIX}[,#[.##]]
      /VERBOSE
person unquiet mind    schedule 16.12.2010
comment
Да, нашел \ Microsoft Visual Studio 10.0 \ VC \ bin - Большое спасибо - person Johannes; 16.12.2010

Есть еще одна вещь, которую вы могли бы сделать, чтобы уменьшить объем контента, который вы импортируете с помощью статической библиотеки. В CVI откройте файл заголовка, соответствующий используемой библиотеке .lib / .dll. Сохраните этот файл под другим именем .h.

Опять же, в редакторе отредактируйте этот файл, чтобы включить в него только экспортированные функции, которые вы хотите использовать. Будьте осторожны, чтобы предотвратить редактирование функций, которые могут быть вызваны функциями, которые вы собираетесь сохранить. Убедившись, что у вас есть файл, представляющий то, что вы хотите, щелкните в любом месте нового файла имя .h (чтобы убедиться, что это активный файл) и используйте меню в в верхней части рабочей области, чтобы выбрать Параметры-> Создать библиотеку импорта DLL ...
Появится всплывающее диалоговое окно выбора файла. Используя это диалоговое окно, перейдите к DLL-файлу, соответствующему файлу .lib, который вы хотите сгенерировать. В случае успеха будет создано новое имя .lib, содержащее только нужные вам экспортированные функции.

[EDIT] Кроме того, это поможет избежать иногда проблем с несовместимостью COFF наблюдается при смешивании библиотек, созданных в разных средах.

person ryyker    schedule 22.04.2011