【已解决】返回值是char*的如何封装
本帖最后由 沉默流星 于 2025-5-13 12:55 编辑测试过下面几种,输出的文本还是乱码
char *av_strdup(const char *s)<火山程序 类型 = "通常" 版本 = 1 />
// @ @an<CVolString> (av_strdup((const char *)CU8String(@<源文本>.GetText()).GetText()))
//@ @an<CVolString> (av_strdup((const char *)@<源文本>.GetText()))
// @ 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
当然返回值换成 字节集类也试过,也是不行。
个人觉得这个函数直接在嵌入代码里写便是了,没必要封装出来。
如果要封装,返回变整数或多字节文本指针 也有可能是多字节与utf8的编码问题, 用纯英文也会乱码吗? hcwanz 发表于 2025-5-13 12:23
也有可能是多字节与utf8的编码问题, 用纯英文也会乱码吗?
纯英文也乱码 咋可能乱码,这个命令的作用是复制字符串,你第一句应该是没问题的。
另外你复制了还用文本型返回是想干什么?
这个命令复制完之后就把 char* 给 ffmpeg 的其他命令处理啊,还返回文本型干嘛。
ffmpeg 处理完要用 av_free 释放文本。 Xelloss0618 发表于 2025-5-13 12:34
咋可能乱码,这个命令的作用是复制字符串,你第一句应该是没问题的。
另外你复制了还用文本型返回是想干什 ...
那用啥类型返回?不写返回值? Xelloss0618 发表于 2025-5-13 12:40
个人觉得这个函数直接在嵌入代码里写便是了,没必要封装出来。
如果要封装,返回变整数或多字节文本指针 ...
好的,谢谢x大
页:
[1]