-
-
[旧帖]
[求助]头文件包含的顺序不同,引起不同结果
0.00雪花
-
发表于:
2013-6-20 11:15
1650
-
[旧帖] [求助]头文件包含的顺序不同,引起不同结果
0.00雪花
环境win7 64位,VC6.0
如
/****************************ioctl_test.h*************************/
#define IOCTL_TEST1 CTL_CODE(FILE_DEVICE_UNKNOWN, \
0x800,METHOD_BUFFERED,FILE_ANY_ACCESS)
/**************************************************************/
顺序1:
#include "stdafx.h"
#include <windows.h>
#include "ioctl_test.h"
这样可以编译通过
顺序2:
#include "stdafx.h"
#include "ioctl_test.h"
#include <windows.h>
这样则会出现一大堆的错误
E:\Program Files (x86)\Microsoft Visual Studio\VC98\INCLUDE\winioctl.h(179) : error C2146: syntax error : missing ';' before identifier 'DeviceType'
E:\Program Files (x86)\Microsoft Visual Studio\VC98\INCLUDE\winioctl.h(179) : error C2501: 'DWORD' : missing storage-class or type specifiers
E:\Program Files (x86)\Microsoft Visual Studio\VC98\INCLUDE\winioctl.h(179) : error C2501: 'DeviceType' : missing storage-class or type specifiers
E:\Program Files (x86)\Microsoft Visual Studio\VC98\INCLUDE\winioctl.h(185) : error C2146: syntax error : missing ';' before identifier 'DeviceNumber'
E:\Program Files (x86)\Microsoft Visual Studio\VC98\INCLUDE\winioctl.h(185) : error C2501: 'DWORD' : missing storage-class or type specifier
.............
顺序3:
#include "ioctl_test.h"
#include "stdafx.h"
#include <windows.h>
这样则会出现未定义的错误
error C2065: 'IOCTL_TEST1' : undeclared identifier
但是不知为何

求大神解答
[培训]传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!