2013-07-14 3 views
0

Я использую WxWidgets 2.9.4 в Visual Studio 2012, и я получаю эти сообщения две ошибки:MessageBoxW не может преобразовать

Ошибка 1 Ошибка C2664: «MessageBoxW»: не может преобразовать параметр 2 из «сопзЬ символ *», чтобы 'LPCWSTR'

IntelliSense: аргумент типа "сопзЬ символ *" несовместим с параметром типа "LPCWSTR"

Мой код:

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

Возможный дубликат [не может преобразовать параметр 2 из 'const char \ [14 \]' в 'LPCWSTR'] (http://stackoverflow.com/questions/15592906/cannot-convert-parameter-2-from-const -char-14-to-lpcwstr) – tinman

+0

В дополнение к приведенному ниже решению, почему вы используете Win32 ':: MessageBox()' так или иначе, если используете wxWidgets? Просто используйте 'wxMessageBox()' вместо этого. –

ответ

1

Вы компилируете ваш проект с использованием многобайтовых символов по умолчанию. Вы можете изменить это в свойствах вашего проекта, или вы можете использовать msg.wc_str(), или даже принудительно использовать использование MessageBoxA вместо использования макроса MessageBox.

+0

My Character Set установлен в «Использовать многобайтовый набор символов», хотя это то, что меня тошнит. – user2581556

+0

Thats the problem, изменить его на простой, я точно не помню имя. – Havenard

+0

Набор символов: не установлен – Havenard

Смежные вопросы