平时用易语言写一些小工具时,可能会用到DLL传递数组,易语言又只支持返回常规类型,这时候我们可以使用该方法来取回原来的数据结构数组。
工具/原料
易语言
电脑
方法/步骤
1、首先新建一个空擢爻充种的DLL,然后新建一个数据类型如:.版本2.数据类型数据类型1.成员a,逻辑型.芤晟踔肿成员b,小数型.成员c,双精度小数型.成员d,长整数型.成员e,整数型.成员f,字节集
2、在新建一个公开的子程序.版本2.支持库spec.子程序info,整数型,筇瑰尬哇公开.局部变量x,数据类型1,,媪青怍牙"0".局部变量a,数据类型1清除数组(x)a.a=真a.b=3.1a.c=3.1415926a.d=81357707a.f={1,2,3}加入成员(x,a)加入成员(x,a)返回(取变量地址(x))
3、把新建的写好的DLL编译出来
方法/步骤2
1、然后在新建一个新的易程序,插入一个新的DLL命令.版本2.DLL命令DLL命令1,整数型,"info.dll","info"
2、并把刚才DLL里面的自定义数据复制过来.版本2.数据类型数据类型1.成员a,逻辑型.成员b,小数型.成员c,双精度小数型.成员d,长整数型.成员e,整数型.成员f,字节集
3、然后新建一个子程序,代码如下:.版本2.支持库spec.子程序还原数组,咯悝滩镞,,还原自定义数据数组.局部变量变量地址.局部变量还原为字节集,字节集缕计瓤账.局部变量字节集长度,字节集.局部变量还原数据长度.局部变量x,数据类型1,静态,"0".局部变量i,整数型变量地址=DLL命令1()还原为字节集=指针到字节集(变量地址,4)字节集长度=指针到字节集(取变量地址(还原为字节集[1])-4,4)还原数据长度=取字节集数据(字节集长度,3,1)写到内存(还原为字节集,取变量地址(x),还原数据长度).计次循环首(取数组成员数(x),i)调试输出(x[i].a,x[i].b,x[i].c,x[i].d,x[i].e,x[i].f).计次循环尾()调试输出(取数组成员数(x))
方法/步骤3
1、运行后结果如下: