总结VC与易语言DLL互相调用的方法

时间:2021-05-19

在编写程序的时候往往需要调用到别的语言编写的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); 本文内容来自 FreeLibrary(hMod);

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章