下你所需,载你所想!
汇集开发技术源码资料

易语言动态数据类型,完全脱离变量的束缚

: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处)

易语言动态数据类型,完全脱离变量的束缚

热门推荐

相关文章