Как вы можете проверить файлы lib? - PullRequest
2 голосов
/ 16 декабря 2010

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

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

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

Ответы [ 2 ]

2 голосов
/ 23 апреля 2011

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

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

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

2 голосов
/ 16 декабря 2010

Библиотека 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
...