文章目录[隐藏]
易语言的启动线程默认是传递一个整数的,在 易语言启动线程传递文本参数中,我们讲解了传递文本参数,今天,我们示范传递多个变量
思路是我们把要传递的变量定义成一个整数型数组,传递的是参数内容的内存地址指针,由于传递的参数可能是文本和整数,所以我们要封装两个取文本指针地址和取整数指针地址,文本和整数在内存中的字节是不同的。
取文本指针地址
.版本 2 .支持库 spec .子程序 取文本指针地址, 整数型, 公开, 申请空间并获取一个指针地址! .参数 文本, 文本型 .局部变量 指针地址, 整数型 指针地址 = 申请内存 (取文本长度 (文本) + 1, 真) 写到内存 (文本, 指针地址, 取文本长度 (文本)) 返回 (指针地址)
取整数指针地址
.版本 2 .支持库 spec .子程序 取整数指针地址, 整数型, 公开, 申请空间并获取一个指针地址 .参数 数值, 整数型 .局部变量 指针地址, 整数型 指针地址 = 申请内存 (4, 真) 写到内存 (数值, 指针地址, 4) 返回 (指针地址)
取构造变量数组值_整数型
.版本 2 .支持库 spec .子程序 取构造变量数组值_整数型, 整数型, 公开, 从 构造变量数组 的数组堆里,取出指定成员的指针地址来获得最终数据 .参数 指针地址, 整数型 .参数 索引值, 整数型 .参数 是否释放, 逻辑型, 可空, 建议用完后进行释放 .局部变量 数据指针地址, 整数型 .局部变量 结果_整数型, 整数型 数据指针地址 = 指针到整数 (指针地址 + (索引值 - 1) × 4) 结果_整数型 = 指针到整数 (数据指针地址) .如果真 (是否释放) 释放内存 (数据指针地址) .如果真结束 返回 (结果_整数型)
取构造变量数组值_文本型
.版本 2 .支持库 spec .子程序 取构造变量数组值_文本型, 文本型, 公开, 从 构造变量数组 的数组堆里,取出指定成员的指针地址来获得最终数据 .参数 指针地址, 整数型 .参数 索引值, 整数型 .参数 是否释放, 逻辑型, 可空, 建议用完后进行释放 .局部变量 数据指针地址, 整数型 .局部变量 结果_文本型, 文本型 数据指针地址 = 指针到整数 (指针地址 + (索引值 - 1) × 4) 结果_文本型 = 指针到文本 (数据指针地址) .如果真 (是否释放) 释放内存 (数据指针地址) .如果真结束 返回 (结果_文本型)
构造变量数组
.版本 2 .支持库 spec .子程序 构造变量数组, 整数型, 公开, 原理:将所有的指针地址,存放到一个 指针数组内! .参数 变量地址数组, 整数型, 数组 .局部变量 i, 整数型 .局部变量 当前地址, 整数型 .局部变量 指针地址, 整数型 指针地址 = 申请内存 (取数组成员数 (变量地址数组) × 4, 真) .计次循环首 (取数组成员数 (变量地址数组), i) 当前地址 = 变量地址数组 [i] 写到内存 (当前地址, 指针地址 + (i - 1) × 4, 4) .计次循环尾 () 返回 (指针地址)
主线程
.版本 2 .支持库 spec .子程序 主线程 .参数 指针地址, 整数型 调试输出 (取构造变量数组值_文本型 (指针地址, 1, 真), “参数1内容”) 调试输出 (取构造变量数组值_文本型 (指针地址, 2, 真), “参数2内容”) 调试输出 (取构造变量数组值_文本型 (指针地址, 3, 真), “参数3内容”) 调试输出 (取构造变量数组值_整数型 (指针地址, 4, 真), “参数4内容”) ' 填真就会释放内存,如果再次调用就取不到,所以建议用完记得释放指针内存 释放内存 (指针地址)
启动线程调用传参
.版本 2 .支持库 EThread .局部变量 地址数组, 整数型, , "0" 加入成员 (地址数组, 取文本指针地址 (“我是第一个参数!”)) 加入成员 (地址数组, 取文本指针地址 (“我是第二个参数!”)) 加入成员 (地址数组, 取文本指针地址 (“我是第三个参数!”)) 加入成员 (地址数组, 取整数指针地址 (66666)) 启动线程 (&主线程, 构造变量数组 (地址数组), )