C++ Can';t在同一文件中包括wdm.h和ntifs.h
我的编译器(vs2012)拒绝编译以下代码行。他为PEPROCESS和PETHREAD重新定义了符号。我如何解决这个问题?为什么不能同时使用两个标题C++ Can';t在同一文件中包括wdm.h和ntifs.h,c++,wdk,C++,Wdk,我的编译器(vs2012)拒绝编译以下代码行。他为PEPROCESS和PETHREAD重新定义了符号。我如何解决这个问题?为什么不能同时使用两个标题 #include <wdm.h> #include <Ntifs.h> double hal_datetime_utc_now() { LARGE_INTEGER gmtTime; KeQuerySystemTime(&gmtTime); ULONG utc_now; RtlTimeT
#include <wdm.h>
#include <Ntifs.h>
double hal_datetime_utc_now()
{
LARGE_INTEGER gmtTime;
KeQuerySystemTime(&gmtTime);
ULONG utc_now;
RtlTimeToSecondsSince1970(&gmtTime, &utc_now);
return (double)utc_now;
}
#包括
#包括
双hal_datetime_utc_now()
{
大整数gmtTime;
KeQuerySystemTime(&gmtTime);
乌龙utc_现在;
RTLTIMETOSCONSSSINCE1970(&gmtTime,&utc\U now);
现在返回(双)utc_;
}
我自己找到了解决方案。在我的场景中,我可以删除wdm.h。因为KeQuerySystemTime也包含在ntifs.h中。所以我可以简单地删除wdm.h
编辑:打字:用ntifs.h替换wdm.h我自己找到了解决方案。在我的场景中,我可以删除wdm.h。因为KeQuerySystemTime也包含在ntifs.h中。所以我可以简单地删除wdm.h
编辑:输入错误:将wdm.h替换为ntifs.h您说了两次“wdm.h”。你的意思是“删除Ntifs.h”还是“也包括在Ntifs中”?你说了两次“wdm.h”。您的意思是“删除Ntifs.h”还是“也包括在Ntifs中”?