【发布时间】:2014-07-29 21:25:59
【问题描述】:
我正在使用 MultiByteToWideChar 将我的字符串转换为 wstring。我首先尝试为我的 wstring 获取所需的大小。根据将 0 作为最后一个参数传递的文档,应该可以做到这一点。使用 MultiByteToWideChar(CP_UTF8, MB_COMPOSITE, str.c_str(), -1, nullptr, 0); 返回 0 作为 wstring 缓冲区所需的大小。我已经验证 str 也是一个非空字符串。我在这里做错了什么?
【问题讨论】:
-
如果函数返回0,需要调用GetLastError获取错误码。返回什么错误码?
-
str的 UTF-8 编码是否正确,或者可能是其他编码? -
返回错误。总是 assert() 这样的值,使用 GetLastError() 找出问题所在。
标签: c++ windows msdn wstring multibyte-functions