2013-07-14 51 views
0

我使用的wxWidgets 2.9.4在Visual Studio 2012和我不斷收到這兩個錯誤消息:MessageBoxW不能轉換

錯誤1個錯誤C2664:「MessageBoxW」:不能從「爲const char *」轉換參數2 'LPCWSTR'

智能感知:類型 「爲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); 
+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

雖然我的字符集被設置爲「使用多字節字符集」,那是什麼讓我難過。 – user2581556

+0

這就是問題所在,將其更改爲簡單的問題,我完全不記得名稱。 – Havenard

+0

字符集:未設置 – Havenard

相關問題