如何将char字符串转换为wchar_t字符串?

jus*_*nhj 8 c++ windows string

我有一个char*格式的字符串,并希望将其转换为wchar_t*,传递给Windows函数.

sch*_*der 14

这个小功能有帮助吗?

#include <cstdlib>

int mbstowcs(wchar_t *out, const char *in, size_t size);
Run Code Online (Sandbox Code Playgroud)

另请参阅C++参考


Her*_*nán 9

如果您不想链接C运行时库,请使用MultiByteToWideChar API调用,例如:

const size_t WCHARBUF = 100;
const char szSource[] = "HELLO";
wchar_t  wszDest[WCHARBUF];
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, szSource, -1, wszDest, WCHARBUF);
Run Code Online (Sandbox Code Playgroud)

  • 根据字符串的来源,您可能还需要考虑CP_UTF8而不是CP_ACP.它可以存储所有Unicode字符. (2认同)