抑制MS警告的最佳解决方案包括(mmsystem.h中的C4201)

Tim*_*Tim 1 c++ warnings visual-studio

我厌倦了在编译过程中不得不查看警告 - 来自MS的警告包括文件.

"C:\ Program Files\Microsoft SDKs\Windows\v6.0A\include\mmsystem.h(1840):警告C4201:使用非标准扩展名:无名结构/联合"

我已经看到这个线程建议改变标题本身(但是我的每个队友必须这样做,我们必须在构建服务器上进行 - 更不用说它是一个光荣的HACK)

有没有更好的办法?我不想全局关闭它 - 只是为某些文件或目录禁止它.

有什么建议?

编辑由于一些愚蠢的原因,我不认为我可以在包含文件中设置警告级别.谢谢 - 这就是诀窍.

sbi*_*sbi 10

就像是

#pragma warning(push, disable: 4201)
#include <mmsystem.h>
#pragma warning(pop)
Run Code Online (Sandbox Code Playgroud)

  • (+ 1)不知道你可以做推,在一行禁用:) (4认同)
  • 在VS2012中执行`#pragma warning(push,disable:4201)`导致`警告C4083:期望'常数'; 发现标识符'禁用',所以我建议每个`#pragma warning`坚持一条指令. (4认同)
  • 在处理第三方软件时,WRAP. (2认同)

min*_*ang 5

在 VC++ 中使用 #pragma 警告扩展怎么样?

http://msdn.microsoft.com/en-us/library/2c8f766e(VS.80).aspx

#pragma warning (push, 2)  // Temporarily setting warning level 2
#include <mmsystem.h>
#pragma warning (pop)      // Restore back
Run Code Online (Sandbox Code Playgroud)

你也可以尝试..

#pragma warning (disable: 4201)
#include <mmsystem.h>
#pragma warning (default)
Run Code Online (Sandbox Code Playgroud)