易语言DLL制作调用主程序和DLL里自定义类数据通信

DLL里的自定义数据类型:

.版本 2
 
.数据类型 成绩, 公开
    .成员 数学, 整数型
    .成员 语文, 整数型
    .成员 英语, 整数型

DLL里的自定义类:

.版本 2

.子程序 mybox, , 公开

信息框 (“我是DLL类里的信息框”, 0, “DLL-1-类”, )

.子程序 add, , 公开
.参数 a
.参数 b

信息框 (a + b, 0, , )

.子程序 成绩, , 公开
.参数 数学, 整数型
.参数 语文, 整数型
.参数 英语, 整数型
.局部变量 a, 成绩
.局部变量 ave, 整数型
.局部变量 result, 文本型

a.数学 = 数学
a.语文 = 语文
a.英语 = 英语
ave = (a.数学 + a.语文 + a.英语) ÷ 3
.判断开始 (ave > 100 且 ave ≤ 120)
result = “优秀”
.判断 (ave > 80 且 ave ≤ 100)
result = “良好”
.判断 (ave > 72 且 ave ≤ 80)
result = “一般”
.判断 (ave ≥ 0 且 ave ≤ 72)
result = “较差”
.默认

.判断结束

信息框 (“三科均分为: ” + 到文本 (ave) + “ 你的评价等级为: 【” + result + “】”, 0, , )

DLL函数源码:

.版本 2
 
.子程序 dll, , 公开
.参数 保存地址, 整数型
.局部变量 A, 类dll
 
交换变量数据_变量交地址ASM (A, 保存地址)

易语言主程序动态调用

.版本 2
 
.子程序 __启动窗口_创建完毕
 
dll路径 = 取运行目录 () + “\dll.dll”
 
.子程序 _按钮1_被单击, , , 1-mybox
.局部变量 a, 类dll
.局部变量 地址
.局部变量 命令地址
.局部变量 参数数据地址, , , "1"
 
地址 = 取变量地址_ASM (a)
命令地址 = 取DLL命令地址_ASM (dll路径, “dll”)
参数数据地址 [1] = 地址
调用命令_ASM (命令地址, 参数数据地址, )
a.mybox ()
 
.子程序 _按钮2_被单击, , , 2-add
.局部变量 a, 类dll
.局部变量 地址
.局部变量 命令地址
.局部变量 参数数据地址, , , "1"
 
地址 = 取变量地址_ASM (a)
命令地址 = 取DLL命令地址_ASM (dll路径, “dll”)
参数数据地址 [1] = 地址
调用命令_ASM (命令地址, 参数数据地址, )
a.add (到整数 (编辑框2.内容), 到整数 (编辑框1.内容))
 
.子程序 _按钮3_被单击
.局部变量 a, 类dll
.局部变量 地址
.局部变量 命令地址
.局部变量 参数数据地址, , , "1"
 
地址 = 取变量地址_ASM (a)
命令地址 = 取DLL命令地址_ASM (dll路径, “dll”)
参数数据地址 [1] = 地址
调用命令_ASM (命令地址, 参数数据地址, )
a.成绩 (到整数 (编辑框1.内容), 到整数 (编辑框2.内容), 到整数 (编辑框3.内容))

易语言静态调用

.版本 2
 
.子程序 _按钮1_被单击, , , 主程序
.局部变量 a, 类dll
.局部变量 变量地址, 整数型
 
变量地址 = 取变量地址_ASM (a)
dll (变量地址)
a.mybox ()
 
.子程序 _按钮2_被单击
.局部变量 a, 类dll
.局部变量 变量地址, 整数型
 
变量地址 = 取变量地址_ASM (a)
dll (变量地址)
a.add (3, 6)
 
.子程序 _按钮3_被单击
.局部变量 a, 类dll
.局部变量 变量地址, 整数型
 
变量地址 = 取变量地址_ASM (a)
dll (变量地址)
a.成绩 (到整数 (编辑框1.内容), 到整数 (编辑框2.内容), 到整数 (编辑框3.内容))

教程下载:


发布日期:

所属分类: 易语言 标签: