規格可以看這裏:爲什麼winpcap需要.lib和.dll才能運行?
http://www.winpcap.org/docs/docs_40_2/html/group__wpcapsamps.html
這是非常奇怪的,無論是.lib
或.dll
足夠IMO,爲什麼它需要兩者兼而有之?
規格可以看這裏:爲什麼winpcap需要.lib和.dll才能運行?
http://www.winpcap.org/docs/docs_40_2/html/group__wpcapsamps.html
這是非常奇怪的,無論是.lib
或.dll
足夠IMO,爲什麼它需要兩者兼而有之?
如果你調用DLL,您將需要一個庫這一點。你可以看到下面的鏈接瞭解更多信息
這是從wikipedia
鏈接到動態庫通常是通過鏈接到一個導入庫(.LIB的)建築物或鏈接創建一個可執行文件時處理。然後,創建的可執行文件包含一個導入地址表(IAT),通過該導入地址表(IAT)引用所有DLL函數調用(每個引用的DLL函數在IAT中包含它自己的條目)。在運行時,IAT被填充適當的地址,這些地址直接指向單獨加載的DLL中的函數。
一般情況下,你需要在運行時.lib
的鏈接,並.dll
。 .lib
文件被稱爲「導入庫」,它包含告訴鏈接器您正在調用的函數的膠水可以在關聯的.dll
文件中找到。
你可能會發現,只有.dll
文件在運行時所需。
這是爲Win32 DLL項目一種廣泛使用的佈局,並不限定於Winpcap的。
它不僅與WinPcap的,所有外部庫是這樣的。
*.h
,你會得到*.o
文件*.o
文件鏈接到可執行文件,則需要*.lib
或*.dll.a
文件。*.dll
文件
似乎'.lib'酷似「.H」文件。 – Gtker 2010-05-04 04:22:19
@Gtker - .lib不類似.H文件。當建立一個訪問DLL的EXE有2個選項(一)準備好.h,.lib(用於編譯和鏈接)和.dll(用於運行時)。 (ii)使用Loadlibrary(),GetProcAddress()並調用你的dll函數。在這種情況下,你不需要.Lib或.H文件。 (我的建議是遠離第二選擇) – SysAdmin 2010-05-04 05:08:08