我正在尝试将std :: string Buffer(包含位图文件中的数据)转换为std :: wstring。
我正在使用MultiByteToWideChar
,但这不起作用,因为该函数在遇到第一个'\0'
字符后停止。好像它把它解释为字符串的结尾。
当我没有传递-1作为长度参数,但是std :: string-Buffer中数据的实际长度时,它会使Unicode-String混乱,其中的字符绝对不会出现在原始位置串...
我是否必须编写自己的转换功能? 或者我可能会将数据保存为临时字符数组,因为特殊符号将被错误地转换?
关于
答案 0 :(得分:1)
有许多很多的东西会因这种方法而失败。除此之外,额外的字节可能会在您没有意识到的情况下添加到您的数据中。
奇怪的是,你唯一的选择需要std::wstring()
。如果这是一个本土的库,你应该不厌其烦地写一个新函数。如果不是,请确保在编写自己的内容之前没有更合适的内容。