精易论坛

标题: 求 自定义数据类型数组到指针,指针到自定义数据类型数组 [打印本页]

作者: XChuang    时间: 2019-2-8 18:12
标题: 求 自定义数据类型数组到指针,指针到自定义数据类型数组
如题,最好用汇编或易实现,不要跟我说模块
作者: npzs    时间: 2019-2-8 18:12
  
子程序名返回值类型公开备 注
_GetAryAddr整数型 取变量数组地址,相当于 取变量地址()
参数名类 型参考可空数组备 注
变量通用型
置入代码 ({ 139, 69, 8, 201, 194, 4, 0 })
返回 (0)
子程序名返回值类型公开备 注
_GetAryPtr整数型 取变量数组实际数据指针(也就是对该指针使用 指针到xxx 的话将返回数组第一个成员的实际数据)
参数名类 型参考可空数组备 注
变量通用型
复合逻辑型如果是复合型数据(即自定义结构)则输入真,否则为假!
置入代码 ({ 139, 69, 8, 139, 0, 139, 8, 65, 107, 201, 4, 141, 4, 1, 139, 77, 12, 227, 2, 139, 0, 201, 194, 4, 0 })
返回 (0)
' mov eax, [ebp+08h] ;变量地址
' mov eax, [eax]  ;数组指针
' mov ecx, [eax]  ;数组维数,后接维数个数个整数表示每一维成员数
' inc ecx
' imul ecx, 04h
' lea eax, [eax+ecx] ;实际数据指针或复合变量地址
' mov ecx, [ebp+0ch]
' jecxz @F
' mov eax, [eax]  ;复合数据指针
' @@:
' leave
' retn 4



如果这里复制的通用型不可用,你就下载附件即可。。
temp44.e (3.24 KB, 下载次数: 170)

但是,不存在“指针到自定义类型数组”的方法,因为直到现在,易的复合数据数组还无法准确判断:
1、数组有多少个成员?易数组其实是存储在实际数据前面的,API遇到这样的情况都是单独一个参数(或一个结构的单独成员)来指明数组的数量,但是你给定了一个指针就根本没有这个值;
2、一个自定义类型的成员数量和类型,这些都是无法通过一个指针得到的;
我这么说的意思是:通用的没法写,如果针对指定的某结构,那还是很容易做到的。。。

作者: XChuang    时间: 2019-2-8 21:50
shier2817 发表于 2019-2-8 18:37
[e=0].版本 2

.子程序 _GetAryAddr, 整数型, 公开, 取变量数组地址,相当于 取变量地址()

膜拜大神,牛逼




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4