在我學習C/C++時,運用EasyX構建圖形界面時遇到沒有與參數列表匹配的重在函數實例的錯誤,錯誤代碼E0304
經過詢問和搜集資料得到以下
錯誤原因
是因為字符串的實際存儲有多種編碼格式,如果默認的編碼格式和實際執行的平台不相符就會發生錯誤。
解決方案
方法一:將所有字符串都修改為 TCHAR 版本。
簡單來說需要注意以下幾點:
- 在程序中使用 #include 添加對 TCHAR 的支持。
- 對於字符串,例如 “abc” 用 _T(“abc”) 表示。就是加上 _T("")。
- 定義字符變量時,將 char 換成 TCHAR。
- 操作字符串的函數也要換成相應的 TCHAR 版本
方法二:在代碼中取消 Unicode 編碼的宏定義,讓后續編譯都以 MBCS 編碼進行。
方法很簡單,只需要在代碼頂部增加以下代碼:
#undef UNICODE
#undef _UNICODE
這樣就可以取消 Unicode 編碼的宏定義,讓整個項目以 MBCS 編碼編譯。
方法三:
以VS2019為例,只需右鍵項目>屬性>配置屬性>高級,把高級屬性中的字符集改為使用多字節字符集