VC與易語言DLL互相調用方法

VC與易語言DLL互相調用方法

時間:2014-05-09 10:11 來源:未知  做者:admin  點擊: 4194 次
在編寫程序的時候每每須要調用到別的語言編寫的DLL文件,下面先來看一下在易語言中如何調用VC編寫的DLL呢,首先用VC編寫一個簡單的DLL文件,代碼以下: int WINAPI add(int x,int y) { return x+y; } 這是一個簡單的兩個數加法操做,返回兩個數相加的結果,這裏我生
 
在編寫程序的時候每每須要調用到別的語言編寫的DLL文件,下面先來看一下在易語言中如何調用VC編寫的DLL呢,首先用VC編寫一個簡單的DLL文件,代碼以下:

int WINAPI add(int x,int y)
{
return x+y;
}

這是一個簡單的兩個數加法操做,返回兩個數相加的結果,這裏我生成的是MFC DLL,而且須要在def中導出add函數。

下面用易語言來調用它,首先在易語言中須要插入一個DLL命令,代碼以下:


.版本 2
 
.DLL命令 調用CDLL, 整數型, "cdll.dll", "add"
    .參數 x, 整數型
    .參數 y, 整數型

而且保存工程文件與DLL文件在一塊兒,不然可能會報找不到DLL的錯誤.下面在按鈕中添加以下代碼:
.版本 2
 
.子程序 _按鈕1_被單擊
 
信息框 (調用CDLL (5, 5), 0, )

這樣咱們傳遞了兩個數後就能夠返回結果了,以下圖: 

VC與易語言DLL互相調用方法

上圖的信息框顯示返回的結果是10,那麼這就是正確的了,易語言調用VC的DLL須要注意類型,而且DLL函數須要WINAPI或stdcall,不然也會報錯。

下面咱們再來看一下VC如何調用易語言的DLL,仍是先用易語言編寫一個DLL文件,創建一個DLL動態連接庫工程,新建一個子程序,代碼以下:

.版本 2
 
.子程序 add, 整數型, 公開
.參數 x, 整數型
.參數 y, 整數型
 
返回 (x + y)
 
 
下面咱們用VC來調用這個DLL而且返回結果,代碼以下:
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與易語言DLL互相調用方法 這樣就獲得了正確的結果了,須要注意的是易語言子程序必須公開,公開也就是與VC中def文件導出是同樣的道理。  
相關文章
相關標籤/搜索