开源虎易语言EXE传递数组类对象给DLL使用
功能说明:该程序是一个用于验证和演示易语言中EXE主程序与外部DLL动态链接库之间实现多种类型数据共享功能的测试工具。其核心功能围绕“跨进程/跨模块内存共享”展开,重点测试了四种典型的数据共享方式:(1)共享自定义数据类型(结构体),通过传递结构体变量地址给DLL,使DLL能读取并显示其中的姓名、年龄、性别、性取向等字段;(2)共享类对象实例,将易语言类(类_Test)的实例地址传入DLL,DLL调用其公开方法(如获取属性值)并弹窗显示结果;(3)共享动态数组(文本型一维数组),主程序分割用户输入的逗号分隔字符串为数组后传址,DLL读取并返回成员数量;(4)共享基本数据类型(文本型变量),主程序传入文本变量地址,DLL直接读取其内容并显示。此外,程序还包含基于“共享内存类”的独立共享机制测试(写入字节集到命名共享内存),以及低级内联汇编调用(test子程序中的置入代码)和调试辅助逻辑(_临时子程序)。整个程序无实际业务逻辑,不涉及网络通信、文件操作或界面渲染等应用功能,所有UI按钮(如“自定义数据类型”“类”“数组”“文本”)均对应上述共享测试用例,旨在为开发者提供一套可运行、可调试、带注释警示(如强调数据类型必须严格一致以防崩溃)的共享数据交互验证框架,适用于易语言DLL插件开发、模块化架构设计及跨模块通信技术学习与调试场景。
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ test
======main
| |
| |------ _启动子程序
| |
| |------ 测试_共享类
| |
| |------ 测试_共享自定义数据类型
| |
| |------ 测试_共享数组
| |
| |------ 测试_共享基本数据类型
| |
| |
======类_Test
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 设置属性值
| |
| |------ 获取属性值
======窗口程序集_启动窗口
| |
| |------ _按钮_自定义数据类型_被单击
| |
| |------ _按钮_类_被单击
| |
| |------ _按钮_数组_被单击
| |
| |------ _按钮_文本_被单击
| |
| |------ __启动窗口_创建完毕
| |
| |
======类_Test
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 设置属性值
| |
| |------ 获取属性值
| |
| |
======调用的Dll
| |
| |---[dll]------ 测试_共享自定义数据类型
| |
| |---[dll]------ 测试_数组
| |
| |---[dll]------ 测试_文本
| |
| |---[dll]------ 测试_类
======窗口程序集1
| |
| |------ _按钮1_被单击
======窗口程序集1
| |
| |------ _按钮1_被单击
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |
======共享内存类
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 写
| |
| |------ 读
| |
| |
======调用的Dll
| |
| |---[dll]------ CreateFileMappingA
| |
| |---[dll]------ MapViewOfFile
| |
| |---[dll]------ UnmapViewOfFile
| |
| |---[dll]------ OpenFileMappingA
| |
| |---[dll]------ CloseHandle
======类_共享指针
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 共享变量指针
| |
| |------ 共享数据指针
| |
| |------ 还原指针
| |
| |------ 同步指针
| |
| |
======Main
| |
| |------ _启动子程序
======窗口程序集_启动窗口
| |
| |------ __启动窗口_创建完毕
| |
| |------ 调用dll_
| |
| |
======调用的Dll
| |
| |---[dll]------ test
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。