如何将 char 转换为 wchar_t*?

How to convert char to 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 之间进行转换。很可能您实际上不需要 convert 字符类型。如果您想使用 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-style 字符串和基于 char 的 C-style 字符串之间进行转换,那么您可以使用 API MultiByteToWideChar and WideCharToMultiByte.