V22017編寫C/C++時沒有與參數列表匹配的重載函數實例


在我學習C/C++時,運用EasyX構建圖形界面時遇到沒有與參數列表匹配的重在函數實例的錯誤,錯誤代碼E0304

 

 

經過詢問和搜集資料得到以下
錯誤原因
是因為字符串的實際存儲有多種編碼格式,如果默認的編碼格式和實際執行的平台不相符就會發生錯誤。
解決方案
方法一:將所有字符串都修改為 TCHAR 版本。
簡單來說需要注意以下幾點:

    1. 在程序中使用 #include 添加對 TCHAR 的支持。
    2. 對於字符串,例如 “abc” 用 _T(“abc”) 表示。就是加上 _T("")。
    3. 定義字符變量時,將 char 換成 TCHAR。
    4. 操作字符串的函數也要換成相應的 TCHAR 版本
      方法二:在代碼中取消 Unicode 編碼的宏定義,讓后續編譯都以 MBCS 編碼進行。
      方法很簡單,只需要在代碼頂部增加以下代碼:
      #undef UNICODE
      #undef _UNICODE
      這樣就可以取消 Unicode 編碼的宏定義,讓整個項目以 MBCS 編碼編譯。
      方法三:
      以VS2019為例,只需右鍵項目>屬性>配置屬性>高級,把高級屬性中的字符集改為使用多字節字符集


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM