白癜风医院地址 http://www.pfzhiliao.com/今天就是要弄明白!所以,经过的文章的洗礼,你应该知道如何指定Windows头文件的具体版本了。如下,你可以看到我们定义了四种不同的宏,是不是有点像孔乙己中不同的”茴”的写法?#defineWINVER0x#define_WIN32_WINNT0x#define_WIN32_WINDOWS0x#define_WIN32_IE0x为什么会有这些不同的宏来做同样一件事儿?我们来一个一个的说。WINVERWINVER符号是最早被设计出来的。早在16位Windows时代,它就被用来控制使用的头文件版本,它的使用延续到32位头文件中,大概来自最初将头文件转换为32位的人,以及与WINVER符号一起长大的人。此符号在头文件中仍然大量使用,这些文件可以将其源头追溯到16位Windows,例如winuser.h、wingdi.h和mmsystem.h。_WIN32_WINNT接下来出现的是_WIN32_WINNT符号。我不确定它来自哪里,但从它的名字来看,它可能是由WindowsNT团队发明的,以便允许他们阻止头文件中仅在Win32的WindowsNT实现中可用的部分。别忘了,在早期,还有Win32s,它是Win32的一个子集,可以在16位Windows3.1上运行。单个WINVER符号不足以准确指定您想要兼容的内容。例如,仅在WindowsNT3.1中可用的函数将使用#if_WIN32_WINNT=0xA进行保护,以便想要在Win32上运行的程序可以将_WIN32_WINNT设置为零,并使该函数保持禁止。同样,Windows95和WindowsNT4都标识自己是Windows主要版本为4,因此WINVER符号不足以区分它们。因此,WindowsNT4中存在但Window95中不存在的功能受到_WIN32_WINNT保护。_WIN32_WINDOWS另一方面,也有一些功能是在Windows95中首次引入的,并且在WindowsNT4的原始版本中不存在。_WIN32_WINDOWS符号允许您指定要访问Windows95的新增内容,这些内容也将移植到WindowsNT4和未来版本的WindowsNT。_WIN32_IE接下里的符号是_WIN32_IE,它允许您指定需要在系统上安装的InternetExplorer版本。这在InternetExplorer包含对选定操作系统组件的更新的时代更为重要。例如,InternetExplorer4不仅带有更新的