在构建VS2013解决方案(从VS8迁移)时,我收到以下错误:
错误1错误C2220:警告视为错误 - 没有 '对象' 文件中生成C:\ Program Files文件\微软的Visual Studio 12.0\VC\atlmfc\\包括38 afx.h警告2警告C4996: 'MBCS_Support_Deprecated_In_MFC':MBCS在MFC支持已弃用,可能会在将来的MFC版本中删除.C:\ Program Files\Microsoft Visual Studio 12.0\VC\atlmfc\include\afx.h 38
这导致bij以下代码:
#ifdef _MBCS
// Warn about MBCS support being deprecated: see http://go.microsoft.com/fwlink/p/?LinkId=279048 for more information.
#pragma warning(push)
#pragma warning(1 : 4996)
inline __declspec(deprecated("MBCS support in MFC is deprecated and may be removed in a future version of MFC.")) void MBCS_Support_Deprecated_In_MFC() { }
class MBCS_Deprecated_MFC
{
public:
MBCS_Deprecated_MFC() { MBCS_Support_Deprecated_In_MFC(); }
};
#pragma warning(pop)
#endif
Run Code Online (Sandbox Code Playgroud)
如何在解决方案中找到_MBCS的定义.查找没有任何结果.
我有一个打电话的程序fprintf.在Visual Studio 2013中,编译和执行的所有内容都没有错误和警告.现在该项目已迁移到Visual Studio 2015(没有任何更改),我的大多数fprintf调用都收到以下警告:
C4474: too many arguments passed for format string
Run Code Online (Sandbox Code Playgroud)
大多数这些警告都指向以下代码行:
fprintf (stderr,"Missing header file name. Formant is :\n", pArg);
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?我是否需要重写我的代码,或者导致这些警告的项目设置是否有问题?
我看到,在这篇 MSDN文章中,对这些函数进行了更改:
所有printf和scanf函数的定义都已内联移入stdio.h,conio.h和其他CRT头文件中.
这与我的问题有关吗?这对VS 2015来说只是一个无害的变化,还是存在一个潜在的崩溃导致的陷阱?