我已编程多年但对std
命名空间和std::string
类非常新。
我正在编写代码来读取Gdiplus::PropertyItem::value
的值char *
。
将此char *
值转换为string
的最常用方法是什么,在我的情况下是一个Unicode字符串?
答案 0 :(得分:4)
您提到的是string
,但您说它是一个Unicode字符串。那么我想你的意思是wstring
。您可以使用MultiByteToWideChar函数在两者之间进行转换。像这样:
std::string str(...);
int size = MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), NULL, 0);
std::wstring wstr(size, 0 );
MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), &wstr[0], size);