总结VC与易语言DLL互相调用的方法
在编写程序的时候往往需要调用到别的语言编写的DLL文件,下面先来看一下在易语言中如何调用VC编写的DLL呢,首先用VC编写一个简单的DLL文件,代码如下:
intWINAPIadd(intx,inty) { returnx+y; }
这是一个简单的两个数加法操作,返回两个数相加的结果,这里我生成的是MFCDLL,并且需要在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并且返回结果,代码如下:
HINSTANCEhMod=LoadLibrary("e.dll"); typedefint(WINAPI*ADD)(int,int); ADDmyadd=(ADD)GetProcAddress(hMod,"add"); CStringstr; str.Format("%d",myadd(5,5)); MessageBox(str);本文内容来自www.lvcode.com FreeLibrary(hMod);