这两天搬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++中原本定义的结构:
2、C++中调用,然后先取一下结构大小
3、把结构粘贴到易语言中
4、运行一下。
5、至于使用,已经在exosip项目里测试过了,取值没问题。
2022-03-12 06:13:30
10KB
模块控件源码
1