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文件導出是一樣的道理。
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM