将 UInt16* 转换为字符
Converting UInt16* to char
我想参考 7zip 的测试应用程序代码
在下一行(第 383 行):
SzArEx_GetFileNameUtf16(&db, i, temp); //Line 383, gets directory and filename
uint16* 值temp
获取文件路径的引用表达式(我假设它是一个字符串)。
我有一个常量字符,让我们命名它filePathToCheck
它基本上是一个文件路径名。我想要的是一种将 filePathToCheck 值与临时值进行比较的方法,以便我可以"选择"我要解密的文件
我最初的实现是获取 temp 的多字节值,但这给出了一个空字符串,可在下面的方法中找到:
WideCharToMultiByte(CP_UTF8,NULL,temp,sizeof(temp),testa /* char * */, 0, NULL, NULL);
运行测试应用程序(已处理参数)时,Testa 在 WideCharToMultiByte 函数之后保持为空字符串。我是否完全走错了轨道,我应该以另一种方式处理?
示例代码,因为最小代码仍然太大
sizeof(temp)
返回 uint *
的大小,即 4 或 8。你想要的是 temp 的长度(以字符为单位),或者如果 temp 以 null 结尾,你可以简单地传递 -1。
testa
最好是一个足够大的字节数组(而不是字符指针!下一个参数不应为 0,而应为 sizeof(testa)
。
相关文章:
- 从矢量<无符号字符>转换为字符* 包括垃圾数据
- 尝试将字符串/字符转换为整数会产生意外结果
- 如何使用C++将字符串中的字符转换为整数变量
- 字符转换功能 std::isupper() & std::islower() C++17
- 将字符 * 转换为字符串 *
- 在编译时将常量字符* 转换为常量 char_type*
- 如何在 C/C++ 中将无符号字符*转换为无符号字符数组?
- 错误:请求从"常量字符 [5]"转换为非标量类型"字符串"
- 无法使用字符串流将字符转换为字符串C++
- 将无符号字符 C++ 转换为 C#
- C++:使用没有位移位的指针将无符号字符转换为无符号 int
- 为什么我可以隐式地将字符*转换为常量字符*,但不能将无符号字符*
- 无法<string>从"常量字符 []"转换为<类名>
- 不能将字符转换为整数吗?
- 编译时将字符*转换为字节
- CP1251:从字符* 转换为 wchar_t* 时的编码失真
- 将单个字符转换为 std::string 前缀 \x01
- PPM 将字符转换为 int 授予负数
- 通过像printf这样的可变参数函数传递一个带有常量字符*转换函数的类
- 将常量字符* 转换为字符时出错