如标题所示,我有一个简单的char,可以检索要查找的文件的完整路径名,我需要将其转换为const wchar_t。我该如何实现?这是代码示例:

int main()
{
    char filename[] = "poc.png";
    char fullFilename[MAX_PATH];
    GetFullPathName(filename, MAX_PATH, fullFilename, nullptr);
    const wchar_t *path = fullFilename;
}
如您所见,我正在尝试获取要转换的文件名,但找不到任何方法。最简单的解决方案是什么?

最佳答案

您的代码不需要在charwchar_t之间进行转换。您很可能实际上不需要转换字符类型。如果要使用对wchar_t友好的GetFullPathNameW,则只需使用wchar_t而不是char即可。

int main()
{
    wchar_t fullFilename[MAX_PATH];
    GetFullPathNameW(L"poc.png", MAX_PATH, fullFilename, nullptr);
    const wchar_t *path = fullFilename;
    return 0;
}
如果确实需要在基于wchar_t的C样式字符串和基于char的C样式字符串之间进行转换,则可以使用API​​ MultiByteToWideChar WideCharToMultiByte

07-26 04:31