使用#pragma warning(push)和#pragma warning(pop)在他的情况下不能按预期工作

时间:2014-01-06 20:16:07

标签: c++ visual-studio warnings

我正在以高警告级别进行编译,虽然我的代码中没有警告,但我从包含的标题中获得了数万个。所以要禁用它们我会这样做:

#pragma warning(push)
#pragma warning(disable : 4365)
#include <D3Dcommon.h>

#include <d3d11.h>
#include <d3d11_1.h>
#pragma comment(lib, "d3d11.lib")

#include <d3dCompiler.h>
#include <D3D11Shader.h>
#pragma comment(lib, "D3DCompiler.lib")

#include <dxgiformat.h>
#include <dxgi.h>
#pragma warning(pop)

问题是,我的代码中包含的标题中也有5-6个禁用警告(对于整个项目来看),并且由于某种原因使用上面的pragma使它们全部回来,给了我15万整个项目都有不必要的警告。

带有5-6个禁用警告的标题只是这样列出:( ####是不同的数字)

#pragma warning(disable : ####)
#pragma warning(disable : ####)
#pragma warning(disable : ####)
#pragma warning(disable : ####)
......

我没有在那里使用push或pop,因为我希望它们在任何地方都被禁用。

0 个答案:

没有答案