📜  c++ 将 const char* 转换为 LPCWSTR - C++ (1)

📅  最后修改于: 2023-12-03 14:39:55.198000             🧑  作者: Mango

将 const char* 转换为 LPCWSTR - C++

在 Windows 平台下,使用 Visual C++ 编译器开发 Windows 应用时,经常需要将 const char* 类型的字符串转换为 LPCWSTR 类型的字符串。下面介绍几种转换方法:

方法一:使用 MultiByteToWideChar 函数
#include <Windows.h>

LPCWSTR charToLPCWSTR(const char* text)
{
    int size = MultiByteToWideChar(CP_UTF8, 0, text, -1, NULL, 0);
    LPWSTR wstr = new WCHAR[size];
    MultiByteToWideChar(CP_UTF8, 0, text, -1, wstr, size);
    return wstr;
}
方法二:使用 ATL 函数
#include <atlbase.h>

LPCWSTR charToLPCWSTR(const char* text)
{
    USES_CONVERSION;
    return A2W(text);
}
方法三:使用 STL 函数
#include <string>

LPCWSTR charToLPCWSTR(const char* text)
{
    std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
    return converter.from_bytes(text).c_str();
}

以上三种方法都可以将 const char* 类型的字符串转换为 LPCWSTR 类型的字符串,开发者可以根据自己的需要选择合适的方法。