其實,呼叫dll檔案的方法很多,不一定要使用loadlibrary函式。如果使用的話,你就要預先宣告dll中的函式,很麻煩。
下面是我使用dll時的一點技巧,就是引入lib檔案,可以參考:
一.win32 動態鏈結庫
啟動vc6,建立工程,選擇 win32 dynamic-link library,輸入工程名稱,如win32dll。確定,進入設定介面。在當前介面選擇第三項:a dll that exports some symbols。
建立完工程後,開啟win32dll.**件,會看到預設建立的函式。
其中建立了乙個可以匯出的類cwin32dll。在其他程式中可以呼叫此類。
還有乙個全域性的匯出變數,乙個匯出函式。這些變數或者函式都是可以在其他程式中呼叫的。
和平常一樣,為類新增成員函式、成員變數等。
編譯,在debug資料夾下,會建立win32dll.lib,win32dll.dll檔案。這兩個檔案和上述的win32dll.h標頭檔案,都是在其他程式中需要用到的檔案。
二.使用動態鏈結庫dll
新建乙個對話方塊工程。將上述的三個檔案:win32dll.lib,win32dll.dll,win32dll.h,拷貝到當前工程目錄中。 在對話方塊的標頭檔案中,引入上述標頭檔案和lib庫。
#include "win32dll.h"
#pragma comment(lib,"win32dll.lib")
在對話方塊類中,定義dll類的例項。
cwin32dll m_dll;
這樣就可以在本工程中使用dll中的類及其類中函式了。當然,dll中的全域性變數,函式等也可以使用。
示例 dll 和應用程式
在 microsoft visual c++ 6.0 中,可以通過選擇「win32 動態鏈結庫」專案型別或「mfc 應用程式嚮導 (dll)」來建立 dll。
下面的**是乙個在 visual c++ 中通過使用「win32 動態鏈結庫」專案型別建立的 dll 的示例。
// sampledll.cpp//#include "stdafx.h"#define exporting_dll#include "sampledll.h"bool apientry dllmain( handle hmodule, dword ul_reason_for_call, lpvoid lpreserved )void helloworld()
// file: sampledll.h//#ifndef indll_h#define indll_h#ifdef exporting_dllextern __declspec(dllexport) void helloworld() ;#elseextern __declspec(dllimport) void helloworld() ;#endif#endif
下面的**是乙個「win32 應用程式」專案的示例,該示例呼叫 sampledll dll 中的匯出 dll 函式。
注意:在載入時動態鏈結中,您必須鏈結在生成 sampledll 專案時建立的 sampledll.lib 導入庫。
在執行時動態鏈結中,您應使用與以下**類似的**來呼叫 sampledll.dll 匯出 dll 函式。
...typedef void (*dllproc) (lptstr);...hinstance hinstdll;dllproc helloworld;bool ffreedll;hinstdll = loadlibrary("sampledll.dll");if (hinstdll != null)...
應用程式資料夾
當前資料夾
windows 系統資料夾
注意:getsystemdirectory函式返回 windows 系統資料夾的路徑。
windows 資料夾
注意:getwindowsdirectory函式返回 windows 資料夾的路徑。
VC動態呼叫DLL
1.生成dll extern c declspec dllexport char sendmess char buffer,int length 呼叫的時候要先給buffer分配記憶體 new 不然會出10014的錯誤.10014 系統檢測到在乙個呼叫中嘗試使用指標引數時的無效指標位址。2.動態呼叫...
利用vc呼叫dll
一時興起,研究下關於dll的呼叫,算是作為我首次發表文章啦,怎麼說也是我的處子作啊 好吧入正題啦 關於dll的呼叫,查了下資料,有兩種 一 靜態呼叫 二 動態呼叫,下面是分別的呼叫方法 一 靜態呼叫 3 用vc開啟mytest工程,選中工程,然後選擇vc選單下的project settings 二 ...
vc 建立dll檔案以及dll呼叫
一 生成dll 1 用vc建立乙個win32dll工程 dlltest,選上 匯出符號 2 在dlltest.cpp中編寫匯出函式fun 這個函式是別的程式要呼叫的函式 int fun int i 3 在dlltest.h中宣告匯出這個函式 declspec dllexport int fun in...