吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 306|回复: 1

[易语言] 【文本型:内部算法】

[复制链接]
书香 发表于 2024-3-1 05:55 | 显示全部楼层 |阅读模式

本帖最后由 书香 于 2024-3-1 05:56 编辑

这一节课非常重要,是框架开发的理论基础,这也是资深的易语言编程爱好者都不知道的一个技术点

先复习一下知识点

049:【dll讲解】                     050:【dll的开发】                   051:【dll的调用】


源码下载(测试的dll+调用的exe):
dll 调用程序.rar (51 KB, 下载次数: 0)

易语言的dll传递的数据是可以文本型的,这个大家应该都知道

dll接口
  
子程序名返回值类型公开备 注
test文本型
参数名类 型参考可空数组备 注
字符1文本型   
字符2文本型   
变量名类 型静态数组备 注
结果文本型  
结果 = 字符1 + 字符2 + “777”
返回 (结果)


那么其他语言如何调用这个dll,很多语言的设定中返回值是没有文本型这个东西的,你跟对方说说返回值是文本型对方可能直接就懵了,这个文本型其实是易语言的内部算法,这个dll实际上返回值就是整数型的


大家一般熟悉的写法(内部算法):
  
.子程序 _按钮_测试_文本_被单击
.局部变量 字符1, 文本型
.局部变量 字符2, 文本型
.局部变量 返回值, 文本型
字符1 = “111”
字符1 = “222”
返回值 = DLL命令_文本 (字符1, 字符2)
调试输出 (字符1)
.版本 2
.DLL命令 DLL命令_文本, 文本型, "test.dll", "test", , dll命令表
.参数 字符1, 文本型
.参数 字符2, 文本型



    ————————————————————————————————————————

但实际上的完整写法:
  
子程序名返回值类型公开备 注
_按钮_整数_被单击  
变量名类 型静态数组备 注
字符1文本型  
字符2文本型  
字符1_指针整数型  
字符2_指针整数型  
返回值_指针整数型  
返回值文本型  
字符1 = “111”
字符2 = “222”
字符1_指针 = 申请内存 (100, )
字符2_指针 = 申请内存 (100, )
写到内存 (字符1, 字符1_指针, )
写到内存 (字符2, 字符2_指针, )
返回值_指针 = DLL命令_整数 (字符1_指针, 字符2_指针)
返回值 = 指针到文本 (返回值_指针)
调试输出 (返回值)
DLL命令名返回值类型公开备 注
DLL命令_整数整数型 
DLL库文件名:
test.dll
在DLL库中对应命令名:
test
参数名类 型传址数组备 注
字符1整数型  
字符2整数型  



i支持库列表   支持库注释   
spec特殊功能支持库



看完这篇文章就知道了,文本型是易语言的内部算法,传入文本型参数,实际上就是先把数据写入内存,然后传递一个整数型的地址,返回文本型其实就是返回了一个整数型的地址,我们可以使用读取内存的方式读取出数据


本技术应用范围:
  1:跨语言调用
    网上很多特殊功能的dll都是易语言写的,人家的说明就是说返回文本型,我们需要使用其他语言调用dll但是又不知道如何传递这个文本型,这种单子也很多,就卡在不知道如何传递文本型数据上


    2:拓展翻译
    比如全网很多框架(机器人,验证码识别,图像识别)都是用易语言写的,需要我们写dll来完成功能拓展,往往人家作者只提供了易语言模板,我们想使用其他语言对接都没办法,因为不知道文本型数据怎么传递


    3:框架开发
    这个就有点遥远了,我们使用易语言开发框架的时候自然是需要提供其他语言的对接模板的,但是其他语言没有文本型,不使用文本型就显得对易语言用户不太友好了(难度变大),那么以后就可以使用本节的方法编写非易语言对接文档了

(点击返回课程目录https://www.52hb.com/thread-58658-1-1.html

评分

参与人数 1HB +1 收起 理由
叶子丶 + 1

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
lies 发表于 2024-3-2 12:58 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表