看流星社区

 找回密码
 注册账号
查看: 3176|回复: 1

[教程]易语言数据结构在内存中储存的方法

[复制链接]

该用户从未签到

发表于 2013-3-4 09:23:42 | 显示全部楼层 |阅读模式
1:易语言只认识一种数据类型,就是整数型,全部数据类型都按4字节对齐(这可能是为了能实现文本数据类型,和字节集数据类型,和数组类型吧)
2:windows中的c语言,汇编语言(masm)等,全部都是按1个字节对齐的,(整数型的类型一定程度上只不过是4个字节而已)
3:基于上面2点,可以看出,易语言的数据结构是和windows"不兼容"的;
如果易语言要和windows打交道,要给动态链接库函数传递数据结构,那么必须进行
转换,所以~易语言在给dll传递数据结构时全部都透明化了转换
4:基于以上3点,易语言也就不支持直接操作windows的数据结构了(间接自己计算偏移来操作还是可以的)
5:所以写驱动,如果要操作windows数据结构的话,@_memcpy 就是神器啊~,调用这个函数来欺骗易语言,
达到windows数据结构指针转换成易语言结构
___________________________________
易语言存储数据结构
字节型    占用 4个字节,里面保存真实数据     (c语言,汇编语言占用1个字节)
短整数型  占用 4个字节,里面保存真实数据        (c语言,汇编语言占用2个字节)
整数型    占用 4个字节,里面保存真实数据     (c语言,汇编语言占用4个字节)

字节型数组,短整数型数组,整数型数组      (通通申请内存)占用 4个字节,里面保存数据指针(数组的话,是有另外一套结构的~)  (c语言,汇编语言没有的~,易语言牛B,够易~)

字节集    (占用 4个字节)直接填入申请到的内存的指针,指针指向字节集~          (c语言,汇编语言没有的~,易语言牛B,够易~)
文本      (占用 4个字节)占用4个字节,还是保存指针,指针指向文本~              (c语言,汇编语言有也是指针,易语言牛B,够易~)

嵌套其他结构  (占用 4个字节)占用4个字节,还是保存指针,指针这个结构         (c语言,汇编语言直接在当前数据结构位置插入这个结构)

ps,目前没发现"传址"这个属性有什么用,只知道,勾了传址时,给api传递这个结构,铁定崩溃(读不存在的地址)

该用户从未签到

发表于 2013-3-4 21:16:07 | 显示全部楼层
看看看看看看看看看看看
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-26 15:41

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表