请问,VC环境下,如何在预编译中根据不同操作系统,包含不同的头文件。
比如:如果当前系统为Win98,#include"A.h"
如果当前系统为WinNT,#include"B.h"
如果当前系统为Vista,#include"D.h" 多谢指教
比如:如果当前系统为Win98,#include"A.h"
如果当前系统为WinNT,#include"B.h"
如果当前系统为Vista,#include"D.h" 多谢指教
WINVER>=0x0600
Windows Vista _WIN32_WINNT>=0x0600
WINVER>=0x0600
Windows Server 2003 _WIN32_WINNT>=0x0502
WINVER>=0x0502
Windows XP _WIN32_WINNT>=0x0501
WINVER>=0x0501
Windows 2000 _WIN32_WINNT>=0x0500
WINVER>=0x0500
Windows NT 4.0 _WIN32_WINNT>=0x0400
WINVER>=0x0400
Windows Me _WIN32_WINDOWS=0x0500
WINVER>=0x0500
Windows 98 _WIN32_WINDOWS>=0x0410
WINVER>=0x0410
Windows 95 _WIN32_WINDOWS>=0x0400
WINVER>=0x0400
程序运行中可以判断系统环境对于不同环境做不同的处理,头文件可以用最新的,调用的API尽量用各个系统都有的,如果要使用新系统才提供的API可以用动态取函数地址的方法。
一般在stdafx.h这个文件.
比如你新建一个mfc exe工程,然后看stdafx.h这个里面的版本值设定.
在下面写上类似这样的东西,不同系统的时候修改上面定义的_WIN32_WINNT值就包含不同的头文件了.
#if _WIN32_WINNT == 0x0500
包含头文件#elif _WIN32_WINNT == 0x0501
包含头文件#endif
如果在Vista下运行,先修改WIN32_WINNT = 0x0600,然后重新编译???