使用函数 IsWin2000() 会生成一个 C++警告:C4996 - 已弃用的函数

发布于 2024-11-18 09:01:50 字数 283 浏览 3 评论 0原文

因此,当我使用函数 IsWin2000() 来确定运行我的应用程序的计算机是否正在运行 Windows 2000 时,我收到警告:

warning C4996: 'IsWin2000': This function is exported to support existing modules and is obsolete.

如果这是一个过时的、已弃用的函数,那么查询什么的正确方法是什么?操作系统正在运行?有没有其他方法可以完成此任务,或者我唯一的选择就是简单地抑制警告?谢谢!

So when I am using the function, IsWin2000(), to figure out whether or not the computer running my application is running windows 2000, i get the warning:

warning C4996: 'IsWin2000': This function is exported to support existing modules and is obsolete.

If this is an obsolete, deprecated function, what is the proper way to query what operating system is running? Is there any other way to achieve this task, or is my only option to simply suppress the warning? Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

青巷忧颜 2024-11-25 09:01:51

GetVersionEx

请参阅 OSVERSIONINFO 查看结果列表以及如何解释它们。有关详细信息,请参阅获取系统版本完全成熟的例子。

并且不要忘记规范所说的内容:

识别当前操作
系统通常不是最好的方法
判断是否某个特定的
存在操作系统功能。
这是因为操作系统
可能已经添加了新功能
可重新分发的 DLL。而不是使用
GetVersionEx 来确定
操作系统平台或版本
数,测试是否存在
功能本身

GetVersionEx

See the Remarks at OSVERSIONINFO for a list of results and how to interpret them. See Getting the System Version for a fully fledged example.

And lets not forget what the spec says:

Identifying the current operating
system is usually not the best way to
determine whether a particular
operating system feature is present.
This is because the operating system
may have had new features added in a
redistributable DLL. Rather than using
GetVersionEx to determine the
operating system platform or version
number, test for the presence of the
feature itself

甜宝宝 2024-11-25 09:01:51

这不是标准的 Windows API 函数。也许如果您提及您从哪里获得它,我们可以提供更多信息。

正确的方法取决于您想要实现的目标。创建调试日志或错误报告,您应该调用 GetVersionEx

出于任何其他目的,您应该测试您尝试使用的实际功能,通常使用 GetProcAddress,而不是硬编码版本测试。

This is not a standard Windows API function. Maybe if you mention where you got it, we can provide more information.

The proper way depends on what you are trying to accomplish. Creating a debug log or error report, you should call GetVersionEx.

For any other purpose, you should test for the actual feature you're trying to use, often with GetProcAddress, and not hard-code a version test.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文