Что такое переключатель компиляции Win, чтобы отключить предупреждение об устаревшем #pragma? - PullRequest
2 голосов
/ 11 марта 2010

Использование Visual Studio .NET 2003 C ++ и wininet.dll Я вижу много C4995 предупреждений

Подробнее

Любая помощь приветствуется.

Спасибо.

Ответы [ 2 ]

11 голосов
/ 11 марта 2010

В дополнение к ответу, приведенному выше, стоит упомянуть, что часто рекомендуется отключать предупреждение только в ограниченном объеме (это особенно важно, если вы помещаете эти прагмы в заголовочные файлы):

#pragma warning (disable : 4121) // alignment of a member was sensitive to packing

#include <third-party-header.h>

#pragma warning (default : 4121) // Restore default handling of warning

Другой способ сделать это - использовать механизм push / pop. Это может быть удобно, если вам нужно отключить кучу предупреждений в сторонних заголовочных файлах:

#pragma warning(push)
#pragma warning(disable: 4018)  // signed/unsigned mismatch
#pragma warning(disable: 4100)  // unreferenced formal parameter
#pragma warning(disable: 4512)  // 'class' : assignment operator could not be generated
#pragma warning(disable: 4710)  // 'function' : function not inlined
#pragma warning(disable: 4503)  // decorated name length exceeded, name was truncated

#include <third-party-header1.h>
#include <third-party-header2.h>
#include <third-party-header3.h>
#include <third-party-header4.h>

#pragma warning(pop)
6 голосов
/ 11 марта 2010

Вы можете использовать #pragma warning, как показано на этой странице MSDN:

#pragma warning(disable: 4995)

Или вы можете отключить предупреждение для всего проекта в свойствах проекта (щелкните правой кнопкой мыши проект -> Свойства -> C / C ++ -> Дополнительно -> Отключить определенные предупреждения). В командной строке вы можете добиться того же эффекта, используя /wd4995.

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