在写设备相关的代码时,定义了这样一个枚举
enum DEVICE_TYPE
{
DEVICE_NONE = 0,
DEVICE_SPEAKER = 1,
DEVICE_MICROPHONE_ = 2,
DEVICE_CAMERA_ = 3
};
这个再正常不过了,但编译时却报了一个莫名其妙的错误:
error C2371: “DWORD”: 重定义;不同的基类型
真是找了半天才找着原因,你都不知道原因有多坑爹。
这是因为在经过重重叠叠的头文件包含后,include了winioctl.h。而winioctl.h是WindowsSDK的头文件:C:\Program Files (x86)\Windows Kits\8.1\Include\um\winioctl.h
winioctl.h 121行有这么一个定义
#define DEVICE_TYPE DWORD
结果你懂了吧!
解决方法就是把DEVICE_TYPE改个名就好了!编译就过了。