Я использую Visual Studio 2005 (32-разрядная версия) в системе Windows XP. У меня есть проект C ++, который я собираю из командной строки (в командном файле), который использует devenv.exe для запуска сборки. Вот пример того, как он запускается:
{path_to_devenv.exe} my_solution.sln /rebuild "Debug|Win32" /out my_logfile.txt
В коде этого проекта мы используем несколько прагматических выражений, чтобы отключить некоторые посторонние предупреждения, которые мы не хотим видеть:
#pragma warning ( disable : 4521 4522 )
// Some code here
#pragma warning ( default : 4521 4522 )
Когда проект встроен в конфигурацию debug из среды IDE, эти предупреждения не отображаются в выходных данных сборки. Когда тот же проект создается из командной строки, предупреждения do отображаются в нашем файле журнала (который мы указали с помощью параметра командной строки / out ). При создании релиза предупреждения не отображаются ни в одном случае.
Есть ли что-то другое в управлении VS 2005 через devenv.exe, из-за которого прагма игнорируется в случае отладки? Почему эти предупреждения должны появляться в одном мире, а не в другом?