尽管添加了
#define
,我仍然收到同样的一堆警告,两次(下面标题是 #include
d 的次数),总共 100 多个警告:
#ifndef UMDF_USING_NTSTATUS
#define UMDF_USING_NTSTATUS
#endif // !UMDF_USING_NTSTATUS
#include <windows.h>
#include <memoryapi.h>
#include <ntsecapi.h>
#include <ntstatus.h>
#include <Sddl.h>
class MyClass
{
protected:
static NTSTATUS MyMethod();
};
但我仍然收到一堆警告:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\shared\SDKDDKVer.h(223): message : see previous definition of '_WIN32_WINNT'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\shared\ntstatus.h(66,1): warning C4005: 'STATUS_WAIT_0': macro redefinition
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\um\winnt.h(2549): message : see previous definition of 'STATUS_WAIT_0'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\shared\ntstatus.h(223,1): warning C4005: 'STATUS_ABANDONED_WAIT_0': macro redefinition
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\um\winnt.h(2550): message : see previous definition of 'STATUS_ABANDONED_WAIT_0'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\shared\ntstatus.h(246,1): warning C4005: 'STATUS_USER_APC': macro redefinition
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\um\winnt.h(2551): message : see previous definition of 'STATUS_USER_APC'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\shared\ntstatus.h(282,1): warning C4005: 'STATUS_TIMEOUT': macro redefinition
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\um\winnt.h(2552): message : see previous definition of 'STATUS_TIMEOUT'
需要什么才能阻止这种情况?
在这个特定的例子中我使用
#pragma 警告(推送)
#pragma 警告(4005:禁用)
#包括
只需禁用特定标头的消息。我还没有找到只让符号 #define 一次的方法。