什么是WINVER 0x501?没有它的RegisterDeviceNotification错误

时间:2012-07-17 09:45:07

标签: c windows winapi usb device-driver

我在代码中使用了RegisterDeviceNotification API。如果我没有使用#define WINVER 0x501,它就无法正常工作(获取链接器错误)。

1)当我查看窗口Winuser.h时,RegisterDeviceNotificationA定义了#if(WINVER >= 0x0500)。这是什么原因?

2)为了使RegisterDeviceNotificationA工作,我在没有#if(WINVER >= 0x0500)的情况下在我自己的.h文件中声明了所有声明。这是对的吗?

3)我的另一个问题是在没有winver的情况下声明RegisterDeviceNotificationA有什么问题吗? Winver有什么用?请详细解释我。

1 个答案:

答案 0 :(得分:2)

WINVER这样的定义的主要目的是用最近的编译器编译旧代码。

如果您正在编写新代码,则需要在cpp文件或项目文件中定义此变量以及其他几个变量。该值是您要定位的Windows版本。这就是微软设计它的方式。

将系统定义复制到代码中是非常糟糕的做法