“DWORD”: 重定义;不同的基类型

在写设备相关的代码时,定义了这样一个枚举

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改个名就好了!编译就过了。

猜你喜欢

转载自blog.csdn.net/luoweifu/article/details/78267002