天天看點

vc學習筆記之dll

在解決方案資料總管中源檔案下建立def檔案,格式如下:

LIBRARY 

EXPORTS

functionname

在cpp檔案中寫要導出的函數,在.h檔案中寫函數聲明,應用時包含頭檔案就可以替代聲明。

動态加載dll不需要設定vc包含目錄、庫目錄和連結依賴,動态加載dll示例代碼:

HINSTANCE hdll;

hdll=LoadLibrary("dll1.dll");//加載dll

typedef int ( *ADDPROC)(int a,int b);//定義函數指針ADDRPROC

ADDPROC padd=(ADDPROC)GetProcAddress(hdll,"add");//檢索dll中EXPORTS函數

if(!padd)

{

MessageBox("擷取函數位址失敗!");

return;

}

CString str;

str.Format("5+3=%d",padd(5,3));

MessageBox(str);

FreeLibrary(hdll);//減少被加載的dll引用計數,計數變為零時,該dll子產品将從調用程序的位址空間解除安裝。