lib和dll .dll是在你的程序運(yùn)行的時(shí)候才連接的文件,因此它是一種比較小的可執(zhí)行文件格式,.dll還有其他的文件格式如.ocx等,所有的.dll文件都是可執(zhí)行。 .lib是在你的程序編譯連接的時(shí)候就連接的文件,因此你必須告知編譯器連接的lib文件在那里。一般來(lái)說(shuō),與動(dòng)態(tài)連接文件相對(duì)比,lib文件也被稱為是靜態(tài)連接庫(kù)。當(dāng)你把代碼編譯成這幾種格式的文件時(shí),在以后他們就不可能再被更改。如果你想使用lib文件,就必須: 如果你想從你的代碼分離一個(gè)dll文件出來(lái)代替靜態(tài)連接庫(kù),仍然需要一個(gè)lib文件。這個(gè)lib文件將被連接到程序告訴操作系統(tǒng)在運(yùn)行的時(shí)候你想用到什么dll文件,一般情況下,lib文件里有相應(yīng)的dll文件的名字和一個(gè)指明dll輸出函數(shù)入口的順序表。如果不想用lib文件或者是沒(méi)有l(wèi)ib文件,可以用WIN32 API函數(shù)LoadLibrary、GetProcAddress。事實(shí)上,我們可以在Visual C++ IDE中以二進(jìn)制形式打開lib文件,大多情況下會(huì)看到ASCII碼格式的C++函數(shù)或一些重載操作的函數(shù)名字。 一般我們最主要的關(guān)于lib文件的麻煩就是出現(xiàn)unresolved symble 這類錯(cuò)誤,這就是lib文件連接錯(cuò)誤或者沒(méi)有包含.c、.cpp文件到工程里,關(guān)鍵是如果在C++工程里用了C語(yǔ)言寫的lib文件,就必需要這樣包含: =============================== 在VC中不用MFC如何制作dll 方法一:使用export 和 import 在VC中建立一個(gè)Console Application,建立2個(gè)文件:Dll.h 和 Dll.cpp Dll.h #ifdef MYLIBAPI MYLIBAPI int Add (int iLeft, int iRight) Dll.cpp #define MYLIBAPI extern "C" _declspec (dllexport) #include "Dll.h" int Add (int iLeft, int iRight) int Sub (int iLeft, int iRight) 保存文件。 方法二:使用def文件 Dll.h int Add (int iLeft, int iRight) ; Dll.cpp #include "Dll.h" int Add (int iLeft, int iRight) int Sub (int iLeft, int iRight) 然后再當(dāng)前目錄下面建立一個(gè).def文件,文件名最好和要輸出的dll名字一樣,擴(kuò)展名 LIBRARY dllname.dll 參考文獻(xiàn): 《Windows核心編程》 《凌波微步-軟件開發(fā)警戒案例集》 |
聯(lián)系客服