Come posso inibire l'avviso 4200 in Visual Studio 2005?
-
03-07-2019 - |
Domanda
Posso inibire molti avvisi in Visual Studio 2005 SP1 nella pagina delle proprietà Avanzate di C / C ++, che fa sì che l'IDE utilizzi l'opzione / wd sulla riga di comando che richiama il compilatore. Tuttavia, quando provo a inibire l'avviso 4200 (estensione non standard utilizzata: array di dimensioni zero in struct / union), appare ancora quando compilo. (Ovviamente è giustificato; non sono in grado di correggere il codice, né varrebbe la pena preoccuparsi, perché è generato e l'avvertimento è del tutto benigno in base alle circostanze.) Qualcuno capisci se questo è un bug nel compilatore? O potrebbe esserci qualcosa che posso fare al riguardo?
Soluzione
Intendi come con pragma ?
#pragma warning( disable : 2400 )
Altri suggerimenti
Per disabilitare completamente l'avviso nel file, è possibile aggiungere quanto segue all'inizio del file
#pragma warning(disable:2400)
Se si desidera una maggiore flessibilità oltre a una disabilitazione generale del file, la pagina seguente elenca molte altre opzioni più dettagliate.
In base alle tue informazioni non è chiaro se si tratti di un bug nel compilatore o di un problema di configurazione. Mi spingerei verso un problema di configurazione, in particolare le opzioni del compilatore in conflitto che sta rendendo difficile sopprimere l'avviso.
MODIFICA
OP ha menzionato che non possono controllare il codice generato, quindi non possono includere direttamente il pragma. In tal caso, prova questo trucco. Supponiamo che il nome del file sia Generated.cpp. Non includere più Generated.cpp come uno dei file da compilare. Crea invece un nuovo file chiamato Example.cpp con i seguenti contenuti
#pragma warning(disable:2400)
#include "Generated.cpp"
Ora otterrai il testo di Generated.cpp con l'avviso disabilitato compilando solo Example.cpp.