递归火山软件开发平台
标题:
dll返回字节集的问题
[打印本页]
作者:
qzuser123ss
时间:
2024-10-9 06:46
标题:
dll返回字节集的问题
dll需要返回文本,目前我是直接返回字节集的指针,但是在程序中读指针需要字节集的长度,我想用类似于易语言的参考来实现,但是实际过程中没有生效。用写指针处值又乱码,各位是怎么实现的?
这是dll的方法
[attach]29680[/attach]
这是exe的方法
[attach]29681[/attach]
作者:
创世魂
时间:
2024-10-9 08:00
把字节集长度传递过去不就行了。
作者:
cxz7411
时间:
2024-10-9 08:20
本帖最后由 cxz7411 于 2024-10-9 08:22 编辑
返回(字节集变量.取对象自身地址()),然后调用方直接: 字节集类 即可.如果不能直接使用字节集类,则可以用 读指针处对象(返回值,字节集类) 即可
作者:
Xelloss0618
时间:
2024-10-9 09:39
你的图没发上来
一、文本数据不需要长度,只要确保有结束零字符,就能通过指针判断长度,火山里用「指针到文本、多字节指针到文本」就可以(官方缺了一个UTF8指针到文本,第三方模块有);
二、如果你返回的是局部变量的指针,那返回的是野指针,变量中的数据已经被释放,肯定是乱码的;
三、如果将局部变量设置为静态,或者返回成员变量的指针,虽然不是野指针,但你这个函数和返回的指针不是线程安全;
四、如果申请内存后再返回指针,不是野指针也线程安全,但你必须考虑多增加一个函数来释放这个指针,否则会内存泄漏;
五、DLL建议仿照Windows API的方式来设置,即调用方申请内存,把指针传给DLL,DLL把数据写入到这个内存里。但申请的内存长度是多少,这就要你自己考虑了。
欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/)
Powered by Discuz! X3.4