Wxwidgets MessageBoxW无法转换

Wxwidgets MessageBoxW无法转换,wxwidgets,lpcwstr,Wxwidgets,Lpcwstr,我在Visual Studio 2012中使用wxWidgets 2.9.4,不断收到以下两条错误消息: 错误1错误C2664:“MessageBoxW”:无法将参数2从“const char*”转换为“LPCWSTR” IntelliSense:类型为“const char*”的参数与类型为“LPCWSTR”的参数不兼容 我的代码是: #ifdef _WIN32 std::string msg; StringFromFormatV(&msg, format, args)

我在Visual Studio 2012中使用wxWidgets 2.9.4,不断收到以下两条错误消息:

错误1错误C2664:“MessageBoxW”:无法将参数2从“const char*”转换为“LPCWSTR”

IntelliSense:类型为“const char*”的参数与类型为“LPCWSTR”的参数不兼容

我的代码是:

#ifdef _WIN32
    std::string msg;
    StringFromFormatV(&msg, format, args);
    retval = IDYES == MessageBox(0, msg.c_str(), "ERROR! Continue?", MB_ICONQUESTION | MB_YESNO);

您正在使用多字节字符作为默认值编译项目。您可以在项目的属性中更改它,或者您可以使用
msg.wc_str()
,或者甚至强制使用
MessageBoxA
,而不是使用宏
MessageBox

的可能重复项除了下面的解决方案之外,如果您使用的是wxWidgets,为什么还要使用Win32
::MessageBox()
?只需使用
wxMessageBox()
即可。但我的字符集设置为“使用多字节字符集”,这正是困扰我的问题。这就是问题所在,请将其更改为简单的一个,我不记得确切的名称。字符集:不是集