火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 1950|回复: 7

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

[复制链接]

3

主题

25

帖子

250

积分

中级会员

Rank: 3Rank: 3

积分
250
发表于 2022-9-29 16:34:50 | 显示全部楼层 |阅读模式
本帖最后由 hstangqk 于 2022-9-29 16:37 编辑

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


回复

使用道具 举报

105

主题

617

帖子

3744

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3744
发表于 2022-9-29 21:04:13 | 显示全部楼层
截个图
回复

使用道具 举报

25

主题

1408

帖子

5347

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5347
发表于 2022-9-29 21:11:37 | 显示全部楼层
QQ截图20220929210855 (1).png

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

回复

使用道具 举报

3

主题

25

帖子

250

积分

中级会员

Rank: 3Rank: 3

积分
250
 楼主| 发表于 2022-9-30 10:49:02 | 显示全部楼层
Xelloss0618 发表于 2022-9-29 21:11
按照系统API的思路写吧,由调用方申请和释放内存
参考如上

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

使用道具 举报

25

主题

1408

帖子

5347

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5347
发表于 2022-9-30 13:33:57 | 显示全部楼层
hstangqk 发表于 2022-9-30 10:49
谢谢你,我要是看懂的话,这是调用两次吗?第一次取回长度,第二次才能取回数据 ...

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

使用道具 举报

102

主题

579

帖子

2021

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

102

主题

579

帖子

2021

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

49

主题

450

帖子

1769

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 19:35 , Processed in 0.100967 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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