文件名称:易语言骚操作之动态数据类型-易语言
文件大小:146KB
文件格式:ZIP
更新时间:2024-07-01 17:28:17
模块控件源码
将某个数.据类型/类 完全脱离易语言 变量的束缚,把它变成孤儿指针我从落叶的通用型哈希表那边学来的:哈希表类_汇编版(HashMap_ASM) 支持自定义数据值 核心思路如下图: 当我们在代码中引用 局_自定义数据 的时候,易语言才会初始化这个变量,如果没有引用,这个变量在编译后其实是不存在的这时候,我们在子程序开头执行这么一段汇编代码: mov eax,[ebp-0x4]leaveret 0x4 这段汇编代码的意思是,将第一个变量的值写入eax(返回值) 然后 ret 4 让易语言的这个子程序直接返回这时候,因为我们用了汇编代码让子程序直接返回的,没有经过易语言的控制,所以这个变量1的地址不会被释放到此,我们就成功将这个变量的数据完全独立出来了接下来就是如何释放这个变量的数据呢?原理看下图: 为什么这个子程序需要声明一个局部变量呢?而且还是静态属性(全局变量)因为我们要让易语言IDE的语法检查通过,子程序返回值是 数据类型1 我们写的 返回() 也要是数据类型1这个变量唯一的用途就是让我们通过语法检查仅此而已接着我们再看汇编代码: mov eax,[ebp+0xC]leaveret 0x8 这段汇编代码的意思是,将返回值的数据设置为参数1,然后依旧是强制返回,不通过易语言子程序执行后,如果没有用变量来接收返回值的话,他就会被调用处释放 接下来看看如何使用: 我们可以直接申请出一段内存地址,写入自定义数据类型/类然后将它传递给线程,并且不需要考虑局部变量释放的问题,因为 局_指针 里面存放的就是独立的变量数据接着在线程里面,取回这个数据就可以完美读写了 怎样使用其它数据类型 将 动态数据类型(类) 中的 数据类型1 改成你需要操作的数据类型即可(共6处) 读写性能测试
【文件预览】:
动态xx类型.e