Использование функции IsWin2000 () выдает предупреждение C ++: C4996 - Устаревшая функция - PullRequest
0 голосов
/ 01 июля 2011

Поэтому, когда я использую функцию IsWin2000 (), чтобы выяснить, работает ли на компьютере под управлением моего приложения Windows 2000, я получаю предупреждение:

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

Если это устаревший, устаревшая функция, как правильно запросить, какая операционная система работает?Есть ли другой способ решить эту задачу, или я могу просто подавить предупреждение?Спасибо!

Ответы [ 2 ]

3 голосов
/ 01 июля 2011

GetVersionEx

См. Примечания в OSVERSIONINFO для получения списка результатов и того, как их интерпретировать.См. Получение версии системы для полноценного примера.

И давайте не будем забывать, что говорится в спецификации:

Идентификация текущей операционной системы обычно нелучший способ определить, присутствует ли конкретная функция операционной системы.Это связано с тем, что в операционной системе могут быть добавлены новые функции в распространяемой DLL.Вместо того чтобы использовать GetVersionEx для определения платформы или номера версии операционной системы, проверьте наличие самой функции

2 голосов
/ 01 июля 2011

Это не стандартная функция Windows API. Возможно, если вы укажете, где вы его взяли, мы можем предоставить дополнительную информацию.

Правильный путь зависит от того, чего вы пытаетесь достичь. Создавая журнал отладки или отчет об ошибках, вы должны позвонить GetVersionEx.

Для любых других целей вы должны протестировать реальную функцию, которую вы пытаетесь использовать, часто с GetProcAddress, а не жестко кодировать тест версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...