我正在尝试在Visual Studio for C ++的Windows上的测试应用程序中编译以下代码:
const wchar_t* chinese = "好久不见";
但是我收到以下错误:
错误C2440:'初始化':无法从'const char [5]'转换为'const wchar_t *
我正在使用unicode编译,所以我对此感到困惑。如果我像这样投射文字,错误消失了:
const wchar_t* chinese = (wchar_t*)"好久不见";
我不确定这是否安全,我也不想这样做,所以如何解决这个问题。
谢谢!
答案 0 :(得分:13)
您需要一个宽字符串文字,因此请在字符串文字前加上L
:
const wchar_t* chinese = L"好久不见";
答案 1 :(得分:1)
就像GMan所说的那样,在字符串前加上'L'。 L将字符串标识为宽字符类型(wchar_t)。
const wchar_t* chinese = L"好久不见";