最近在使用VS2010 提示錯誤 : error C2664: 'LoadImageW' : cannot convert parameter 2 from 'char [20]' to 'LPCWSTR'“char [20]”轉換爲“LPCWSTR”
問題的原因:VS2010默認採用寬字符UNICODE編碼方式,定義了Unicode,因此相關的字符串必須爲unicode字符串,而非ascii字符串。
LPCWSTR中的W是寬字符的意思,是UNICODE,就是說不是傳統的char這種單字節字符,而是一個字符佔兩字節.
編譯器把LoadImage解釋成了LoadImageW,說明代碼中某個地方定義了UNICODE開關,編譯環境成了寬字節的,要把這個定義去掉.
Win32 API也分2中版本, MessageBoxA / MessageBoxW,,,MessageBox根據是否定義_UNICODE宏而定義到其中一個版本。
正確的解決方案是
選擇【項目菜單】->【最後的屬性】->【配置屬性】->【常規】->【項目默認值】->unicode改爲未設置。
幾個注意事項: