Visual C++ Tips: warning C4996: 'MBCS_Support_Deprecated_In_MFC': MBCS support in MFC is deprecated

在用Visual Studio 2013编译一个旧的VC++项目时,出现大量的这样的警告:

1>c:\program files (x86)\microsoft visual studio 12.0\vc\atlmfc\include\afx.h(38): warning C4996: 'MBCS_Support_Deprecated_In_MFC': MBCS support in MFC is deprecated and may be removed in a future version of MFC.
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\atlmfc\include\afx.h(33) : see declaration of 'MBCS_Support_Deprecated_In_MFC'



出现这样的警告,原因是因为:

由于历史原因,MFC同时支持 Unicode 和 MBCS(multi-byte character set),但 Unicode 日渐变得流行,而 MBCS 逐渐用得越来越少,所以,新版本的 MFC 已经把 MBCS 作为过时的方法,所以用新版本的 Visual Studio 编译 MBCS 程序的时候会出现这样的警告信息,建议大家在新的程序中废弃 MBCS 而采用 Unicode。


关于程序支持 Unicode 还是 MBCS,设置选项在这里:



但是,对于已经采用 MBCS  的旧版的VC++程序,我们不打算将其迁移至 Unicode,又不想见到大量的 C4996 警告,怎么办呢?关闭编译器的 C4996 警告,需要在 preprocessor 定义中增加 NO_WARN_MBCS_MFC_DEPRECATION






参考文章:


为什么用pandas 载入csv文件时总会有'mbcs' codec can't encode characters in position 0--1: invalid character 而且不是因为语言的问题# -*- coding: utf-8 -*-, 并且有的时候,同样的文件一天以后就又能读取了 pdData = pd.read_csv(r"‪C:\Users\toshiba\Desktop\LogiReg_data.txt" , names=['Exam1','Exam2','Exam3']) Traceback (most recent call last): File "<ipython-input-36-5c314e5cc9e9>", line 1, in <module> pdData = pd.read_csv(r"‪C:\Users\toshiba\Desktop\LogiReg_data.txt" , names=['Exam1','Exam2','Exam3']) File "C:\Users\toshiba\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 562, in parser_f return _read(filepath_or_buffer, kwds) File "C:\Users\toshiba\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 315, in _read parser = TextFileReader(filepath_or_buffer, **kwds) File "C:\Users\toshiba\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 645, in __init__ self._make_engine(self.engine) File "C:\Users\toshiba\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 799, in _make_engine self._engine = CParserWrapper(self.f, **self.options) File "C:\Users\toshiba\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 1213, in __init__ self._reader = _parser.TextReader(src, **kwds) File "pandas\parser.pyx", line 358, in pandas.parser.TextReader.__cinit__ (pandas\parser.c:3427) File "pandas\parser.pyx", line 609, in pandas.parser.TextReader._setup_parser_source (pandas\parser.c:6630) UnicodeEncodeError: 'mbcs' codec can't encode characters in position 0--1: invalid character
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页