2010-11-11 13 views

risposta

19

Se si vuole attivarlo (o spento) nell'impostazione progetto, si deve andare a:

Configuration Properties -> C/C++ -> Command Line e poi sotto Opzioni aggiuntive è possibile immettere:

/w3#### per impostare il proprio avviso sul livello 3 e quindi abilitarlo; oppure è possibile immettere /wd#### per disabilitare un avviso.

+0

La migliore risposta! Grazie mille! Non l'ho mai visto menzionato su MSDN. –

+1

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

+0

In realtà non funziona wi VStudio 2015. Aggiunto a ogni singolo progetto di Synergy, ma ha ottenuto l'errore di compilazione "Please enable it". Utilizzare il parametro aggiuntivo **/w34005 ** per Tutte le configurazioni. – Slesa

21
#pragma warning(default:4265) 

Potrebbe sembrare che impostare l'avviso alle sue impostazioni predefinite (che sarebbero disabilitate), ma non è questo il caso. Lo accende.

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

Si può anche fare questo:

#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 parola * predefinito * indica * livello di avviso predefinito *, non * stato predefinito *. Grazie per avermelo fatto notare, non l'ho trovato da solo. – sharptooth

+0

stavo cercando un flag di compilazione per fare questo piuttosto che un cambio di codice, poiché l'avvertimento non è definito a livello di progetto, tuttavia sembra che questo sia l'unico modo per ottenere il risultato :( – 0xC0DEFACE

+3

Questo non funzionerà se il _default livello di avviso_ dell'avviso selezionato è inferiore (in termini di gravità) rispetto al livello impostato nelle proprietà del progetto. ** Esempio: ** Il livello di avviso è impostato su 3 (/ W3), ma avviso [C4245] (http://msdn.microsoft.com/en-us/library/e9s7thk1.aspx) ha un livello predefinito di 4. L'uso di '#pragma warning (default: 4245)' non lo abilita, ma '#pragma warning (3 : 4245) 'fa. (Questo mi ha solo morso) –

1

Per rendere il commento di Matthäus Brandl riguardo #pragma warning più visibile:

Se si sta compilando con un livello di allarme inferiore a 3, è necessario utilizzare la seguente sintassi:

#pragma warning (<warning level>: 4265) 

Solo se si compila con livello 3 o superiore si può fare

#pragma warning (default: 4265) 

perché per avvertimento 4265, default significa livello 3 (vedi MSDN) .

Il documentation for #pragma warning legge:

warning-specifier Significato

1, 2, 3, 4 Applicare il livello dato l'avviso specificato (s). Ciò attiva anche un avviso specificato che è disattivato per impostazione predefinita.

default Ripristina il comportamento di avviso sul valore predefinito. Ciò attiva anche un avviso specificato che è disattivato per impostazione predefinita. L'avviso verrà generato al suo livello predefinito, documentato.

Problemi correlati