标签:编码 undef TCHAR C++ V2019 字符串 abc UNICODE 重载
在我学习C/C++时,运用QT构建图形界面时遇到没有与参数列表匹配的重在函数实例的错误,错误代码E0304
错误原因
是因为字符串的实际存储有多种编码格式,如果默认的编码格式和实际执行的平台不相符就会发生错误。
解决方案
方法一:将所有字符串都修改为 TCHAR 版本。
简单来说需要注意以下几点:
在程序中使用 #include 添加对 TCHAR 的支持。
对于字符串,例如 “abc” 用 _T(“abc”) 表示。就是加上 _T("")。
定义字符变量时,将 char 换成 TCHAR。
操作字符串的函数也要换成相应的 TCHAR 版本
方法二:在代码中取消 Unicode 编码的宏定义,让后续编译都以 MBCS 编码进行。
方法很简单,只需要在代码顶部增加以下代码:
#undef UNICODE
#undef _UNICODE
这样就可以取消 Unicode 编码的宏定义,让整个项目以 MBCS 编码编译。
方法三:
以VS2019为例,只需右键项目>属性>配置属性>高级,把高级属性中的字符集改为使用多字节字符集
标签:编码,undef,TCHAR,C++,V2019,字符串,abc,UNICODE,重载 来源: https://www.cnblogs.com/fly777/p/15938432.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。