脚本开发,脚本学习,辅助软件
【腾讯云】新用户专属大礼包低至1折【阿里云】云产品通用代金券2000元【阿里云】云小站优惠返现【阿里云】企业级1折特惠【阿里云】3年低至3折
查看: 16|回复: 0

易语言内存模拟C++数据结构

[复制链接]

54

主题

54

帖子

429

积分

专属

Rank: 1

积分
429
发表于 2020-5-7 15:29:32 | 显示全部楼层 |阅读模式


这两天搬C++代码到易语言上,虽然一路顺风,但是感觉有点乱,比如数据结构之类的,有些的结构复杂,要自己计算偏移量

于是,灵感来了,把C++的结构代码复制到易语言里,然后解析一下,如果调用C++返回的是数据结构的话,把指针取出来,然后利用本模块便可以模拟加载指针到 动态数据类型。

步骤:(如果是有指针的)

1、置入相关结构大小()     (如果有无法识别的 且不为C++中的指针类型将会默认认为是int型,所以先置入,避免结构出错,没有其他结构的就不管)

2、解析类()                      (把C++中的结构粘过来解析一下,解析完成后将返回xx结构的大小,类似于C++中定义xx类型后,调用sizeof()一样)

3、置xx指针()               (把指针置入进去)

4、Get()                           就可以愉快的取出值啦,默认可以取出int,string。如果是其他自定义的xx结构,将会返回字节集,如果C++中原本是指针类型的,这里就返回指针

如果是没有指针的,而是我们创建数据类型传入C++中

1、置入相关结构大小()    同上

2、解析类()                      同上

3、创建数据空间()             就类似于C++中的先new初始化一下空间

4、Set()                               设置值啦!

5、取类指针()                  取出自定义xx类型结构的指针,然后传入DLL函数中调用C++。

下面是我的实验截图:

1、C++中原本定义的结构:

)J9FKN`K6052PB[3UFOK6)N.png

2、C++中调用,然后先取一下结构大小

}}MBX68P6FM5YKCVT](AO18.png

3、把结构粘贴到易语言中

KX1AM%}f~67J)074K1~D1.png


4、运行一下。

QC%W(L7ZLXEH1PN2T$Q@6@M.png

5、至于使用,已经在exosip项目里测试过了,取值没问题。

下载链接:https://t00y.com/file/20110282-442174087






上一篇:易语言内存加载DLL 文件不落地源码
下一篇:网易云音乐软件EXUI
3Q4T网,编程学习交流基地。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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