我第一次使用WinAPI,我有一个返回UCHAR *的函数,但我需要它作为std:string,因为当我尝试将它打印为UCHAR *但当我这样做时它会打印很多废话。必须有一些简单的方法来解决这个问题。我用谷歌搜索了这个,但我找不到任何东西。我什至不知道 UCHAR* 是什么,尽管它似乎充当某种字符串。我听说它是一个指向无符号字符串的指针,但我不太确定这意味着什么。
问问题
1364 次
2 回答
4
这应该工作
char temp[5];
memcpy(temp, battery_info.Chemistry, 4);
temp[4] = '\0'; // add nul terminator
std::string s = temp; // convert to string
因为您的源数据不一定具有通常的 nul 终止符,所以我已将数据复制到临时 char 数组中,添加了一个 nul 终止符以确保,然后转换为 std::string。
于 2013-10-10T19:57:17.540 回答
1
由于该结构的成员不是空终止的:
std::string chemistry(battery_info.Chemistry, battery_info.Chemistry + 4);
无需执行任何操作即可获得您想要的行为memcpy
;
于 2013-10-10T20:14:29.730 回答