如何将char转换为wchar_t *?

问题描述

标题所示,我有一个简单的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和{{3 }}。