2010-11-11 33 views

Respuesta

19

Si desea activarlo (o apagado) en la configuración de proyecto, usted tiene que ir a:

Configuration Properties -> C/C++ -> Command Line y luego bajo Opciones adicionales puede ingresar:

/w3#### para configurar su advertencia en el nivel 3, y así habilitarla; o puede ingresar /wd#### para deshabilitar una advertencia.

+0

¡La mejor respuesta! Muchas gracias! No lo he visto mencionar en ningún lugar en MSDN. –

+1

Enlace de MSDN https://msdn.microsoft.com/en-us/library /thxezb7y.aspx – esmirnov

+0

En realidad, no funciona wi th VStudio 2015. Se agregó a cada uno de los proyectos de Synergy, pero se obtuvo el error de compilación "Habilítelo". Use el parámetro adicional **/w34005 ** para todas las configuraciones. – Slesa

21
#pragma warning(default:4265) 

Podría parecer que configuraría la advertencia a su configuración predeterminada (que se desactivaría), pero ese no es el caso. Lo enciende

http://msdn.microsoft.com/en-us/library/2c8f766e%28VS.80%29.aspx

También puede hacer esto:

#pragma warning(X:4265) 
// where X is the warning level(1,2,3 or 4) that you want this warning to be generated at 
+1

+1.Sí, la palabra * predeterminado * significa * nivel de advertencia predeterminado *, no * estado predeterminado *. Gracias por señalar esto, no lo encontré yo mismo. – sharptooth

+0

Estaba buscando un indicador de compilación para hacer esto en lugar de un cambio de código, ya que entonces la advertencia no está definida en todo el proyecto, sin embargo, parece que esta es la única forma de lograr el resultado :( – 0xC0DEFACE

+3

Esto no funcionará si el _default el nivel de advertencia_ de la advertencia seleccionada es menor (en términos de severidad) que el nivel configurado en las propiedades del proyecto. ** Ejemplo: ** El nivel de advertencia se establece en 3 (/ W3), pero advierte [C4245] (http://msdn.microsoft.com/en-us/library/e9s7thk1.aspx) tiene un nivel predeterminado de 4. El uso de '#pragma warning (predeterminado: 4245)' no lo habilitará, pero '#pragma warning (3 : 4245) 'does. (Esto me mordió) –

1

Para hacer el comentario de Matthäus Brandl respecto #pragma warning más visible:

Si estás compilando con un nivel de advertencia inferior a 3, usted tiene que utilizar esta sintaxis:

#pragma warning (<warning level>: 4265) 

Sólo si compila con nivel 3 o superior que puede hacer

#pragma warning (default: 4265) 

porque para la advertencia 4265, default significa el nivel 3 (véase MSDN) .

El documentation for #pragma warning lee:

warning-specifier Significado

1, 2, 3, 4 Aplicar el nivel dado a la advertencia (s) especificado. Esto también activa una advertencia específica que está desactivada por defecto.

default Restablecer el comportamiento de advertencia a su valor predeterminado. Esto también activa una advertencia específica que está desactivada por defecto. La advertencia se generará en su nivel predeterminado, documentado.

Cuestiones relacionadas