因此,声明GetSystemTimes在winbase.h(我的机器上,Windows 7的VS2005)
#if _WIN32_WINNT >= 0x0501
BOOL
WINAPI
GetSystemTimes(
    __out_opt LPFILETIME lpIdleTime,
    __out_opt LPFILETIME lpKernelTime,
    __out_opt LPFILETIME lpUserTime
    );
#endif
当然,我可以#define _WIN32_WINNT 0x0501,但这似乎不对,我无法找到解释为什么会出现这种情况以及我的替代方案.任何人都有一些见解吗?
它#if已被删除,因为它直到Windows NT v5.01,AKA Windows XP才被添加到API中.您的程序应该是#define符号_WIN32_WINNT到最小目标Windows版本的十六进制值:请参阅使用Windows标头.
如果您没有定义_WIN32_WINNT,它会假定您的目标是最低的公分母,并且它不提供更新的API功能.因此,如果你想使用它们,你需要定义_WIN32_WINNT一个合适的值并理解你的代码不会在旧版本的Windows上运行,这通常很好 - 没有人会抱怨你的代码不能在Windows上运行98.