我在代码中使用了RegisterDeviceNotificationapi。如果我没有使用#define WINVER 0x501,它就不起作用(获取链接器错误)。
1)当我查看窗口Winuser.h时,RegisterDeviceNotificationA#if(WINVER >= 0x0500)下定义。这是什么原因?
2)为了使RegisterDeviceNotificationA工作,我在自己的.h文件中声明了所有声明,但没有声明#if(WINVER >= 0x0500)。这条路对吗?
3)我的另一个问题是,在没有winver的情况下声明RegisterDeviceNotificationA有问题吗?温弗有什么用?请详细解释我。

最佳答案

WINVER这样的定义的主要目的是用最新的编译器编译旧代码。
如果您正在编写新代码,则需要在cpp文件或项目文件中定义此变量或其他变量。该值是您要瞄准的Windows版本。微软就是这样设计的。
将系统定义复制到代码中是非常糟糕的做法。

08-20 01:42