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