Почему для запуска winpcap требуются .lib и .dll? - PullRequest
2 голосов
/ 04 мая 2010

Технические характеристики можно увидеть здесь:

http://www.winpcap.org/docs/docs_40_2/html/group__wpcapsamps.html

Это очень странно, либо .lib, либо .dll достаточно для ИМО, зачем ему оба?

Ответы [ 3 ]

1 голос
/ 04 мая 2010

Как правило, вам нужно .lib для компоновщика и .dll во время выполнения. Файл .lib называется «библиотекой импорта», которая содержит клей, который сообщает компоновщику о вызываемых функциях, которые можно найти в соответствующем файле .dll.

Возможно, вы обнаружите, что во время выполнения требуется только файл .dll.

Это широко используемый макет для проектов Win32 DLL и не ограничивается Winpcap.

1 голос
/ 04 мая 2010

Это не только с winpcap, все внешние библиотеки такие же.

  • Когда вы компилируете свои исходные коды, используя определенную библиотеку, вам нужны заголовочные файлы *.h из этой библиотеки, и вы получите *.o files
  • Когда вы связываете эти *.o файлы с исполняемыми файлами, вам понадобятся *.lib или *.dll.a файлы.
  • Когда вы запустите эти исполняемые файлы, вам понадобятся *.dll files
0 голосов
/ 04 мая 2010

Если вы вызываете Dll, вам понадобится Lib с этим. Вы можете увидеть ссылку ниже для получения дополнительной информации

Это из Википедии

Связывание с динамическими библиотеками обычно выполняется путем связывания с библиотекой импорта (вашей .LIB) при сборке или связыванием для создания исполняемого файла. Затем созданный исполняемый файл содержит таблицу адресов импорта (IAT), по которой ссылки на все вызовы функций DLL (каждая функция DLL, на которую есть ссылки, содержит свою запись в IAT). Во время выполнения IAT заполняется соответствующими адресами, которые указывают непосредственно на функцию в отдельно загруженной DLL.

...