1 CDuiString转换std::string

在visual studio中如果设置的是使用多字节字符集,那么就可以使用CDuiString类的GetData方法进行直接转换,如果设置的是使用Unicode字符集,那么需要将宽字节转换成多字节字符集。

从CDuiString转换为std::string可参考以下代码:

std::string CDuiStringToString(const CDuiString& duistring) {
    LPCTSTR str = duistring.GetData();
#ifdef _UNICODE
    int size_str = WideCharToMultiByte(CP_UTF8, 0, str, -1, 0, 0, NULL, NULL);

    char* point_new_array = new char[size_str];

    WideCharToMultiByte(CP_UTF8, 0, str, -1, point_new_array, size_str, NULL, NULL);

    std::string return_string(point_new_array);
    delete[] point_new_array;
    point_new_array = NULL;
    return return_string;
#else
    return std::string(str);
#endif
}