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


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

錯誤原因

是因為字符串的實際存儲有多種編碼格式,如果默認的編碼格式和實際執行的平台不相符就會發生錯誤。

解決方案

方法一:將所有字符串都修改為 TCHAR 版本。

簡單來說需要注意以下幾點:

在程序中使用 #include 添加對 TCHAR 的支持。
對於字符串,例如 “abc” 用 _T(“abc”) 表示。就是加上 _T("")。
定義字符變量時,將 char 換成 TCHAR。
操作字符串的函數也要換成相應的 TCHAR 版本

方法二:在代碼中取消 Unicode 編碼的宏定義,讓后續編譯都以 MBCS 編碼進行。

方法很簡單,只需要在代碼頂部增加以下代碼:

#undef UNICODE
#undef _UNICODE

這樣就可以取消 Unicode 編碼的宏定義,讓整個項目以 MBCS 編碼編譯。

方法三:

以VS2019為例,只需右鍵項目>屬性>配置屬性>高級,把高級屬性中的字符集改為使用多字節字符集


免責聲明!

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



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