gpt4 book ai didi

c++ - 为什么 GetSystemTimes #if'd 在 winbase.h 之外?

转载 作者:太空宇宙 更新时间:2023-11-03 10:33:12 26 4
gpt4 key购买 nike

因此,winbase.h 中的 GetSystemTimes 声明(在我的机器上,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,也就是 Windows XP 才被添加到 API 中。您的程序需要将 #define 符号 _WIN32_WINNT 设置为您的最低目标 Windows 版本的十六进制值:参见 Using the Windows Headers .

如果您不定义 _WIN32_WINNT,它会假定您的目标是最低公分母,并且它不会提供更新的 API 功能。因此,如果您想使用它们,您需要将 _WIN32_WINNT 定义为适当的值,并了解您的代码不会在旧版本的 Windows 上运行,这通常很好——没有人会提示您的代码不能在 Windows 98 上运行。

关于c++ - 为什么 GetSystemTimes #if'd 在 winbase.h 之外?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10504402/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com