小编pis*_*ach的帖子

构建时出错预处理程序指令

在构建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的定义.查找没有任何结果.

c++ mfc visual-studio-2013

4
推荐指数
1
解决办法
9225
查看次数

从Visual Studio 2013迁移到Visual Studio 2015后,调用printf样式的函数会导致警告

我有一个打电话的程序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来说只是一个无害的变化,还是存在一个潜在的崩溃导致的陷阱?

c c++ printf visual-studio visual-studio-2015

4
推荐指数
1
解决办法
1770
查看次数