e.exe
связан с моей пользовательской статической библиотекой, c. lib
, который использует Win32 API, определенный в w.dll
. w.dll
находится в C: \ Windows \ System32, а его библиотека импорта - w.lib
, расположенная в каталоге Windows SDK. Оболочка w.lib
должна быть указана как Дополнительная зависимость в проекте c.lib
или e.exe
? ( e.exe
успешно компилируется в обоих случаях. ) Какая лучшая практика и почему? Полагаю, e.exe
не должен знать о w.lib
.
c.lib
предназначен для совместного использования только группой разработчиков (не для отправки клиентам).
ТЕСТ : Я использовал VS2008 и утилиту dumpbin для тестирования обоих случаев, и вот результаты:
w.lib
добавлен как Дополнительная зависимость в проект c.lib
. dumpbin / archivemembers c.lib
выводит список обоих смещений в w.dll
и .obj файлов из проекта c.lib
в качестве членов архива.
w.lib
не добавлена как Дополнительная зависимость в c.lib
, но в проекте e.exe
: На этот раз вывод dumpbin содержит только файлы .obj из c. lib
, а размер c.lib
меньше, чем в случае 1
( c.lib
был добавлен как Дополнительная зависимость в ] w.exe
в обоих случаях.)
ПРИМЕЧАНИЕ : Я использовал w.lib
и w.dll
здесь как вымышленные общие имена для Windows библиотеки, но это могут быть, например, Userenv.lib и Userenv.dll или Version.lib и Version.dll ...