递归火山软件开发平台

标题: 求教dll文件返回字节集的方法 [打印本页]

作者: hstangqk    时间: 2022-9-29 16:34
标题: 求教dll文件返回字节集的方法
本帖最后由 hstangqk 于 2022-9-29 16:37 编辑

想用火山写一个dll文件,里面封装一个加解密的功能,供易语言和火山调用,苦于找不到方法,用交换变量不行,想用申请内存的方式返回也不行,提供的那个内存填充,数据类型既然是字节,写指针值吧数据既然不能是字节集类,有点不知所措啊.请问下那里有这方面的教程或列子啊,如果用局部变量返回数据地址又怕返回后内部释放了,用共用变量又不支持多线程同时调用



作者: kamikaze    时间: 2022-9-29 21:04
截个图

作者: Xelloss0618    时间: 2022-9-29 21:11
(, 下载次数: 21)

按照系统API的思路写吧,由调用方申请和释放内存
参考如上


作者: hstangqk    时间: 2022-9-30 10:49
Xelloss0618 发表于 2022-9-29 21:11
按照系统API的思路写吧,由调用方申请和释放内存
参考如上

谢谢你,我要是看懂的话,这是调用两次吗?第一次取回长度,第二次才能取回数据
作者: Xelloss0618    时间: 2022-9-30 13:33
hstangqk 发表于 2022-9-30 10:49
谢谢你,我要是看懂的话,这是调用两次吗?第一次取回长度,第二次才能取回数据 ...

是的,很多系统API都是这样的调用方式
作者: server    时间: 2022-9-30 14:51
我有不同见解。
1/调用API  xxoo(buf,len)
2/直接返回 新的解密数据指针
3/返回的指针 前4个字节是数据长度,实际数据从第5个字节开始。
4/实际返回的内存长度=返回数据长度+4
5/再导出一个释放内存的方法。用于释放上面返回的指针。。
作者: server    时间: 2022-9-30 14:53
预分配分内存 长度 可以奢侈点,是传入尺寸*2 ,这也比多一次加密过程,节约算力。或者保底多长。。
作者: 呵呵仙8    时间: 2022-10-3 17:26
dll如是想任何语言通用的话,只能申请内存,向里面写数据,如是EXE,DLL只需要火山自身一家调用的话,变量地址就可以还原取数据了.读指针处对象()就可以还原相关的类.




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4