Как я могу запретить предупреждение 4200 в Visual Studio 2005? - PullRequest
0 голосов
/ 01 мая 2009

Я могу запретить многие предупреждения в Visual Studio 2005 SP1 на странице свойств C / C ++ Advanced, что заставляет IDE использовать ключ / wd в командной строке, которая вызывает компилятор. Однако, когда я пытаюсь запретить предупреждение 4200 (используется нестандартное расширение: массив нулевого размера в struct / union), оно все равно появляется при компиляции. (Конечно, это оправдано; я просто не в состоянии исправить код, и это не стоило бы беспокоиться, потому что он сгенерирован , и предупреждение полностью благоприятно в данных обстоятельствах.) Кто-нибудь случается знать, если это ошибка в компиляторе? Или я могу что-то с этим поделать?

Ответы [ 2 ]

2 голосов
/ 01 мая 2009

Чтобы полностью отключить предупреждение в файле, вы можете добавить следующее в начало файла

#pragma warning(disable:2400)

Если вы хотите большей гибкости, чем полное отключение для файла, на следующей странице перечислены несколько других более детальных параметров.

По вашей информации неясно, является ли это ошибкой в ​​компиляторе или проблемой конфигурации. Я бы склонялся к проблеме конфигурации, в частности к конфликту опций компилятора, который затрудняет подавление предупреждения.

РЕДАКТИРОВАТЬ

ОП упомянул, что они не могут контролировать сгенерированный код, поэтому они не могут напрямую включать прагму. Если это так, попробуйте этот трюк. Скажем, имя файла - Generated.cpp. Больше не включать Generated.cpp в качестве одного из файлов для компиляции. Вместо этого создайте новый файл с именем Example.cpp со следующим содержимым

#pragma warning(disable:2400)
#include "Generated.cpp"

Теперь вы получите текст Generated.cpp с отключенным предупреждением, только скомпилировав Example.cpp.

0 голосов
/ 01 мая 2009

Вы имеете в виду, как с прагма ?

#pragma warning( disable : 2400 )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...