递归火山软件开发平台

标题: 【已解决】返回值是char*的如何封装 [打印本页]

作者: 沉默流星    时间: 前天 11:57
标题: 【已解决】返回值是char*的如何封装
本帖最后由 沉默流星 于 2025-5-13 12:55 编辑

测试过下面几种,输出的文本还是乱码

  1. char *av_strdup(const char *s)
复制代码
  1. <火山程序 类型 = "通常" 版本 = 1 />
  2. // @ @an<CVolString> (av_strdup((const char *)CU8String(@<源文本>.GetText()).GetText()))
  3. //@ @an<CVolString> (av_strdup((const char *)@<源文本>.GetText()))
  4. // @ av_strdup((const char *)@<源文本>.GetText())
复制代码
也测试过嵌入式方法属性值改为这几种
req_obj_param_pointer=true
req_str_param_text_pointer=true
req_str_param_text_pointer_u8=true
req_str_param_text_pointer=true

[size=13.3333px]当然返回值换成 字节集类也试过,也是不行。

作者: hcwanz    时间: 前天 12:23
也有可能是多字节与utf8的编码问题, 用纯英文也会乱码吗?
作者: 沉默流星    时间: 前天 12:26
hcwanz 发表于 2025-5-13 12:23
也有可能是多字节与utf8的编码问题, 用纯英文也会乱码吗?

纯英文也乱码
作者: Xelloss0618    时间: 前天 12:34
咋可能乱码,这个命令的作用是复制字符串,你第一句应该是没问题的。
另外你复制了还用文本型返回是想干什么?
这个命令复制完之后就把 char* 给 ffmpeg 的其他命令处理啊,还返回文本型干嘛。
ffmpeg 处理完要用 av_free 释放文本。
作者: 沉默流星    时间: 前天 12:37
Xelloss0618 发表于 2025-5-13 12:34
咋可能乱码,这个命令的作用是复制字符串,你第一句应该是没问题的。
另外你复制了还用文本型返回是想干什 ...

那用啥类型返回?不写返回值?
作者: Xelloss0618    时间: 前天 12:40
个人觉得这个函数直接在嵌入代码里写便是了,没必要封装出来。
如果要封装,返回变整数或多字节文本指针
作者: 沉默流星    时间: 前天 12:48
Xelloss0618 发表于 2025-5-13 12:40
个人觉得这个函数直接在嵌入代码里写便是了,没必要封装出来。
如果要封装,返回变整数或多字节文本指针 ...

好的,谢谢x大




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