本帖最后由 StarAdmire 于 2022-11-27 16:32 编辑
【首发】【扩展】真正意义上的通用型数据的使用??
核心素材(通用型数据)来源于网络,论坛帖==
【转载】让易语言支持【通用型】数据
https://bbs.125.la/forum.php?mod=viewthread&tid=13737652
(出处: 精易论坛)
啰嗦:
本来,我最近在弄一个新玩意,打算把那个东西卖个关子先 投稿开源大赛,但是因为其中一个功能和通用型数据绕不开,所以我一直在找资源好不容易找到了一个资源却不完善所以我自己去完善了下 [幽灵]
本人是个汇编渣,所以操作中的大部分汇编资源来源于网络后自行修改,操作过程中也是尽可能能不用汇编就不用汇编
已实现功能:此操作的核心思路就是将 通用型的变量地址利用汇编指向他的实际变量,
然后因为易语言的特性吧,导致通用型变量连最基本的赋值操作都无法做到,只能通过汇编来绕过这种判定,
所以我将各种基本功能(复制,赋值,转换回基本数据类型,数组复制,赋值,数组取成员数),
然后这些操作都是通过汇编完成,都可以绕过易语言判断机制,
所以不光对通用型数据有效,理论上可以实现对任何数据的强行转换强行存储
示例: 部分未解决的BUG: 对,你没看错,通用型变量有一个很严重的bug,这一点在 示例 中也着重强调了,也正是这个坑浪费了我整整一天时间 发觉后我也试图去修复,但是奈何本人汇编实属渣,有懂的麻烦修改一下 BUG描述
经过不断的测试,如果同一个子程序中有多个通用型变量,
除第一个参数外的其他参数(任何类型)的还原时的地址都会指向参数1
不光是子程序参数,自定义数据类型如果有多个通用型变量也会出现这个情况
源码: |