递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 4978|回复: 7
打印 上一主题 下一主题

[视窗] 求教dll文件返回字节集的方法

[复制链接]

3

主题

25

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
跳转到指定楼层
楼主
发表于 2022-9-29 16:34:50 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hstangqk 于 2022-9-29 16:37 编辑

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


回复

使用道具 举报

113

主题

693

帖子

4378

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4378
沙发
发表于 2022-9-29 21:04:13 | 只看该作者
截个图
QQ 89075309
回复

使用道具 举报

26

主题

1900

帖子

6926

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6926
板凳
发表于 2022-9-29 21:11:37 | 只看该作者


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

回复

使用道具 举报

3

主题

25

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
地板
 楼主| 发表于 2022-9-30 10:49:02 | 只看该作者
Xelloss0618 发表于 2022-9-29 21:11
按照系统API的思路写吧,由调用方申请和释放内存
参考如上

谢谢你,我要是看懂的话,这是调用两次吗?第一次取回长度,第二次才能取回数据
回复

使用道具 举报

26

主题

1900

帖子

6926

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6926
5#
发表于 2022-9-30 13:33:57 | 只看该作者
hstangqk 发表于 2022-9-30 10:49
谢谢你,我要是看懂的话,这是调用两次吗?第一次取回长度,第二次才能取回数据 ...

是的,很多系统API都是这样的调用方式
回复

使用道具 举报

111

主题

613

帖子

2178

积分

金牌会员

Rank: 6Rank: 6

积分
2178
QQ
6#
发表于 2022-9-30 14:51:16 | 只看该作者
我有不同见解。
1/调用API  xxoo(buf,len)
2/直接返回 新的解密数据指针
3/返回的指针 前4个字节是数据长度,实际数据从第5个字节开始。
4/实际返回的内存长度=返回数据长度+4
5/再导出一个释放内存的方法。用于释放上面返回的指针。。
专业承接18-98岁xx的心理及生理教育辅导。
回复

使用道具 举报

111

主题

613

帖子

2178

积分

金牌会员

Rank: 6Rank: 6

积分
2178
QQ
7#
发表于 2022-9-30 14:53:30 | 只看该作者
预分配分内存 长度 可以奢侈点,是传入尺寸*2 ,这也比多一次加密过程,节约算力。或者保底多长。。
专业承接18-98岁xx的心理及生理教育辅导。
回复

使用道具 举报

50

主题

567

帖子

2475

积分

金牌会员

Rank: 6Rank: 6

积分
2475
8#
发表于 2022-10-3 17:26:14 | 只看该作者
dll如是想任何语言通用的话,只能申请内存,向里面写数据,如是EXE,DLL只需要火山自身一家调用的话,变量地址就可以还原取数据了.读指针处对象()就可以还原相关的类.
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-24 17:08 , Processed in 0.102689 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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