int WINAPI add(int x,int y)
{
return x+y;
}
下面咱們用VC來調用這個DLL而且返回結果,代碼以下:這是一個簡單的兩個數加法操做,返回兩個數相加的結果,這裏我生成的是MFC DLL,而且須要在def中導出add函數。 下面用易語言來調用它,首先在易語言中須要插入一個DLL命令,代碼以下:
.版本 2
.DLL命令 調用CDLL, 整數型, "cdll.dll", "add"
.參數 x, 整數型
.參數 y, 整數型
而且保存工程文件與DLL文件在一塊兒,不然可能會報找不到DLL的錯誤.下面在按鈕中添加以下代碼:
.版本 2
.子程序 _按鈕1_被單擊
信息框 (調用CDLL (5, 5), 0, )
這樣咱們傳遞了兩個數後就能夠返回結果了,以下圖: 上圖的信息框顯示返回的結果是10,那麼這就是正確的了,易語言調用VC的DLL須要注意類型,而且DLL函數須要WINAPI或stdcall,不然也會報錯。 下面咱們再來看一下VC如何調用易語言的DLL,仍是先用易語言編寫一個DLL文件,創建一個DLL動態連接庫工程,新建一個子程序,代碼以下:
.版本 2
.子程序 add, 整數型, 公開
.參數 x, 整數型
.參數 y, 整數型
返回 (x + y)
HINSTANCE hMod = LoadLibrary("e.dll");
typedef int(WINAPI *ADD)(int,int);
ADD myadd = (ADD)GetProcAddress(hMod,"add");
CString str;
str.Format("%d",myadd(5,5));
MessageBox(str);
本文內容來自 www.lvcode.com
FreeLibrary(hMod); 調用後結果以下圖: 這樣就獲得了正確的結果了,須要注意的是易語言子程序必須公開,公開也就是與VC中def文件導出是同樣的道理。 |