с помощью Visual Studio .NET 2003 C++ и Wininet.dll вижу много C4995 warningsЧто такое Win компилятор, чтобы отключить предупреждение #pragma?
Любая помощь приветствуется.
Спасибо.
с помощью Visual Studio .NET 2003 C++ и Wininet.dll вижу много C4995 warningsЧто такое Win компилятор, чтобы отключить предупреждение #pragma?
Любая помощь приветствуется.
Спасибо.
Вы можете использовать #pragma warning
, как показано на этой MSDN странице:
#pragma warning(disable: 4995)
Или, вы можете включить предупреждение от для всего проекта в свойствах проекта (справа проект клик -> Свойства -> C/C++ -> Дополнительно -> Отключить конкретные предупреждения). В командной строке вы можете добиться такого же эффекта, используя /wd4995
.
Каким-либо другим способом они могут быть отключены от кода или настроек? Спасибо. –
@Tommy: компилятор получает два входа: набор аргументов командной строки и исходные файлы. Если вы хотите сказать ему что-то сделать, вы должны сделать это в одном из этих двух мест. –
В дополнении к вышесказанному ответу, стоит отметить, что часто хорошая практика, чтобы только отключить предупреждение в ограниченном объеме (это особенно важно, если вы размещение этих прагм в заголовочных файлах):
#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)
Просто обратите внимание, что вы также можете отключить несколько предупреждений в одной директиве препроцессора: '#pragma warning (disable: 4018 4100)'. Это было сказано, я, как и вы, объяснял причину отключения каждого предупреждения рядом с ним. –
Am с помощью strsafe.h необходимо добавить #define STRSAFE_NO_DEPRECATE http://msdn.microsoft.com/en- us/library/ms647466% 28VS.85% 29.aspx –