文章目录[隐藏]
本课视频通过汇编命令实现了主程序和DLL交换自定义数据类型的数据,这样使得我们访问DLL资源灵活,无所不能。
DLL自定义数据类型:
.版本 2 .数据类型 遇见数据 .成员 A, 短整数型 .成员 B, 整数型 .成员 C, 长整数型 .成员 D, 逻辑型 .成员 E, 文本型 .成员 F, 日期时间型
DLL命令
.版本 2 .子程序 dll3, , 公开, 3-文本型 .参数 保存地址, 整数型 .局部变量 A, 遇见数据 A.A = 511 A.B = 2019 A.C = 1234567898765 A.D = 真 A.E = “我是DLL里的自定义数据类型的文本型,被主程序调用” A.F = 取现行时间 () 交换变量数据_地址交地址ASM (取变量地址_ASM (A), 保存地址)
主程序动态调用DLL源码:
.版本 2 .支持库 spec .子程序 _按钮3_被单击, , , 3-自定义数据类型 .局部变量 A, 遇见数据 .局部变量 地址, 整数型 .局部变量 命令地址, 整数型 .局部变量 参数数据地址, 整数型, , "1" ' 1-获取变量地址 地址 = 取变量地址_ASM (A) ' 2-获取函数命令地址 命令地址 = 取DLL命令地址_ASM (dll路径, “dll3”) ' 调用这个函数方法,第二个参数 参数数据地址 是数组,必须转换一下 参数数据地址 [1] = 地址 ' 4-调用这个命令方法 调用命令_ASM (命令地址, 参数数据地址, ) 调试输出 (A.A) 调试输出 (A.B) 调试输出 (A.C) 调试输出 (A.D) 调试输出 (A.E) 调试输出 (A.F) 编辑框1.加入文本 (到文本 (A.A) + #换行符) 编辑框1.加入文本 (到文本 (A.B) + #换行符) 编辑框1.加入文本 (到文本 (A.C) + #换行符) 编辑框1.加入文本 (到文本 (A.D) + #换行符) 编辑框1.加入文本 (A.E + #换行符) 编辑框1.加入文本 (到文本 (A.F) + #换行符)
主程序静态调用DLL源码:
.版本 2 .支持库 spec .子程序 _按钮3_被单击, , , 3-自定义数据类型 .局部变量 地址, 整数型 .局部变量 A, 遇见数据 地址 = 取变量地址_ASM (A) dll3 (地址) 调试输出 (A.A) 调试输出 (A.B) 调试输出 (A.C) 调试输出 (A.D) 调试输出 (A.E) 调试输出 (A.F) 编辑框1.加入文本 (到文本 (A.A) + #换行符) 编辑框1.加入文本 (到文本 (A.B) + #换行符) 编辑框1.加入文本 (到文本 (A.C) + #换行符) 编辑框1.加入文本 (到文本 (A.D) + #换行符) 编辑框1.加入文本 (A.E + #换行符) 编辑框1.加入文本 (到文本 (A.F) + #换行符) .版本 2 .DLL命令 dll3, , "dll.dll", "dll3" .参数 保存地址, 整数型
汇编取变量地址:
.版本 2 .子程序 取变量地址_ASM, 整数型, , 返回非数组类型的变量地址 .参数 非数组类型的变量, 通用型, 参考, 变量名;注意要为非数组类型的变量 置入代码 ({ 139, 69, 8, 201, 194, 4, 0 }) 返回 (0) ' mov eax,[ebp+8] ' leave ' retn 4
教程下载:
百度网盘链接:https://pan.baidu.com/s/158ikKVjIwaoF4438MG4fhA
提取码:加QQ群:521068947 群文件下载
资源教程交流①群:521068947
511遇见QQ: 272586593