一時興起,研究下關於dll的呼叫,算是作為我首次發表文章啦,怎麼說也是我的處子作啊~~~好吧入正題啦
關於dll的呼叫,查了下資料,有兩種——(一)靜態呼叫 (二)動態呼叫,下面是分別的呼叫方法
(一)靜態呼叫
(3)用vc開啟mytest工程,選中工程,然後選擇vc選單下的project->settings
(二)動態呼叫
動態呼叫是一種隱式的呼叫方式,即程式執行過程中裝載dll,然後獲取指定函式名稱的介面函式,然後再呼叫之。
下面就是我搗鼓了好久的結果啊,也寫上很詳細注釋了
1,將dll——1.dll,放到根目錄,與exe放到一起,若還是程式設計就放到當前工程debug目錄。
2,在**中複製下面**。且假設需要呼叫1.dll中int test(int,int)函式
#include typedef uint (callback* ptest)(int,int );
//其中(int,int)為dll中需要被呼叫函式的形參型別,須按需要修改
//其中ptest為需要呼叫函式test的指標型別,故命名為ptest,可以不改
hinstance hdll; // handle to dll
ptest test; // function pointer, test 為需呼叫函式名字,為下面方便程式設計可以改為dll中對應名字
int dwparam1=4; //為test需要接受的形參1型別,並初始化,為下面方便呼叫,可按需修改
int uparam2=5; //為test需要接受的形參2型別,並初始化,為下面方便呼叫,可按需修改
int ureturnval; //為test函式返回型別
hdll = loadlibrary("1.dll"); 為需呀呼叫的dll
if (hdll != null)
else }
//下面如果有需要再呼叫test可以直接使用,當不用呼叫1.dll時候,可以加上freelibrary(hdll);這一句
當然我也是學習過vb的,對於vb,呼叫這些dll是很簡單的,直接在窗體中宣告部分宣告
private declare function test lib "d:\小測試\1.dll" (byval a as integer, byval b as integer) as integer
其中說明出test函式名,指出dll路徑,列出形參和返回型別即可在程式中呼叫了。
private declare function test lib "d:\小測試\1.dll" (byval a as integer, byval b as integer) as integer
好吧,我的處子作也就告一段落了,我也是乙個剛剛學習c++的新手,以後也爭取更多的更新,記錄下學習的點滴。加油!
guyue
2013—7—23
VC動態呼叫DLL
1.生成dll extern c declspec dllexport char sendmess char buffer,int length 呼叫的時候要先給buffer分配記憶體 new 不然會出10014的錯誤.10014 系統檢測到在乙個呼叫中嘗試使用指標引數時的無效指標位址。2.動態呼叫...
vc呼叫dll 示例
其實,呼叫dll檔案的方法很多,不一定要使用loadlibrary函式。如果使用的話,你就要預先宣告dll中的函式,很麻煩。下面是我使用dll時的一點技巧,就是引入lib檔案,可以參考 一 win32 動態鏈結庫 啟動vc6,建立工程,選擇 win32 dynamic link library,輸入...
vc 建立dll檔案以及dll呼叫
一 生成dll 1 用vc建立乙個win32dll工程 dlltest,選上 匯出符號 2 在dlltest.cpp中編寫匯出函式fun 這個函式是別的程式要呼叫的函式 int fun int i 3 在dlltest.h中宣告匯出這個函式 declspec dllexport int fun in...