UCHAR* to std::string

UCHAR* to std::string

本文关键字:string std to UCHAR      更新时间:2023-10-16

我第一次使用 WinAPI,我有一个返回 UCHAR* 的函数,但我需要它作为 std:string,因为当我尝试将其打印为 UCHAR* 但当我这样做时,它会打印很多乱码。 必须有一些简单的方法来解决此问题。 我用谷歌搜索了这个,但我找不到任何东西。 我什至不知道 UCHAR* 是什么,尽管它似乎充当某种字符串。 我听说它是一个指向无符号字符串的指针,但我不太确定这意味着什么。

这应该有效

char temp[5];
memcpy(temp, battery_info.Chemistry, 4);
temp[4] = ''; // add nul terminator
std::string s = temp; // convert to string

由于您的源数据不一定具有通常的 nul 终止符,因此我已将数据复制到临时 char 数组中,添加了一个 nul 终止符以确保,然后转换为 std::string。

由于该结构的成员不是以空结尾的:

std::string chemistry(battery_info.Chemistry, battery_info.Chemistry + 4);

会让你得到你想要的行为,而不必做memcpy;