:110.003KB : :1 :2020-02-20 19:59:52
当我们在代码中引用 局_自定义数据 的时候,易语言才会初始化这个变量,如果没有引用,这个变量在编译后其实是不存在的
这时候,我们在子程序开头执行这么一段汇编代码:
mov eax,[ebp-0x4]
leave
ret 0x4
这段汇编代码的意思是,将第一个变量的值写入eax(返回值) 然后 ret 4 让易语言的这个子程序直接返回
这时候,因为我们用了汇编代码让子程序直接返回的,没有经过易语言的控制,所以这个变量1的地址不会被释放
到此,我们就成功将这个变量的数据完全独立出来了
接下来就是如何释放这个变量的数据呢?
为什么这个子程序需要声明一个局部变量呢?而且还是静态属性(全局变量)
因为我们要让易语言IDE的语法检查通过,子程序返回值是 数据类型1 我们写的 返回() 也要是数据类型1
这个变量唯一的用途就是让我们通过语法检查仅此而已
接着我们再看汇编代码:
mov eax,[ebp+0xC]
leave
ret 0x8
这段汇编代码的意思是,将返回值的数据设置为参数1,然后依旧是强制返回,不通过易语言
子程序执行后,如果没有用变量来接收返回值的话,他就会被调用处释放
我们可以直接申请出一段内存地址,写入自定义数据类型/类
然后将它传递给线程,并且不需要考虑局部变量释放的问题,因为 局_指针 里面存放的就是独立的变量数据
接着在线程里面,取回这个数据就可以完美读写了
怎样使用其它数据类型
将 动态数据类型(类) 中的 数据类型1 改成你需要操作的数据类型即可(共6处)
02-18易语言的自用CAD插件开源
02-16易语言打造的最简单易用的http服务框架
02-16Fiddler批量自动生成易语言代码
02-16变量名英化自动翻译自动格式转换器
02-16易语言如何判断按钮只能在30秒内点击一次
02-16易语言助手插件快捷键添加注释功能
02-15易语言调用Python[模块]
02-15易语言语法的词法解析
10-21易语言学习制作的生意参谋转换工具
10-15易语言word循环插入文字 图片工具源码
10-12易语言开源简洁C语言编辑器源码
05-30易语言开发的软件逆向破解详细分析教程