在程序使用Dll有兩個加載方式,一種是動態(tài)方式,就是LoadLibrary載入Dll,然后用GetProcAddress來加載需要使用的Dll函數(shù)。另一種就是靜態(tài)連接方式,將dll生成的lib,加入到工程中,然后就可以很方便的調(diào)用。
我們知道很多dll在發(fā)布時不提供lib,沒有l(wèi)ib我們就不能靜態(tài)的加載,所以得想辦法來生成一個lib,在vs2005中有這樣的一個命令
不過我們還需要一個def文件,怎樣來獲得一個def文件哪?
我們知道def是一個庫導(dǎo)出文件 簡單的格式是:EXPORTS 和 一些導(dǎo)出函數(shù)
我們可以用vc6自帶的一個depends來查看dll中有哪些導(dǎo)出函數(shù),來手動做一個.def文件
將xxx.dll和xxx.def,放到一個文件夾中,啟動“Visual Studio 2005 命令提示”
將工作目錄切換到放有xxx.dll和xxx.def的文件夾中輸入:
lib /def:xxx.def /MACHINE:x86
這樣將會產(chǎn)生一個xxx.lib了,將此lib文件和dll文件拷到工程中,就可以進(jìn)行靜態(tài)鏈接了