VS2010中的字符集

时间:2014-03-30 12:09:48

标签: c++ visual-studio-2010 unicode

我正在使用VS2010,我在我的代码中有这些:

::MessageBox(0, "Init FAILED", 0, 0);

当我编译项目时,我得到的错误无法转换参数2来自' const char [25]'到LPCWSTR'。我在互联网上搜索了这个问题,人们告诉我改变字符集'我的项目设置中的选项来自' Unicode'到未设置'。但它不起作用。当我运行这些代码时:

#ifdef UNICODE
    printf("unicode");
#else
    printf("others");
#endif

我得到相同的答案" unicode"无论我选择什么选项。我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:1)

要回答原始问题,您无需更改字符集。解决方案是使用tchar.h中定义的_T()宏。

::MessageBox(0, _T("Init Failed"), 0, 0);

_T()宏将通过在字符串上附加“L”来指定宽字符串,或者通过单独保留字符串来指定ANSI字符串。

如果您真的想要使用要更改的字符集,则应更改字符集 。您不会因为代码无法编译而更改字符集。