Sto provando a creare un progetto in Microsoft Visual C++ 2013 disabilitando tutte le estensioni non standard.Build in Visual C++ senza estensioni Microsoft
#ifdef _MSC_VER
#include <windows.h>
#endif
In Proprietà di configurazione -> C/C++ -> Lingua, ho impostato "disattivare le estensioni lingua" a yes (/ Za).
Tuttavia, la costruzione del precedente codice ricevo errori come ad esempio:
C: \ Program Files (x86) \ WINDOWS Kit \ 8.1 \ include \ um \ winnt.h (11527): errore C2467: illegale dichiarazione di "struct" anonima
Ciò significa che la macro _MSC_VER è ancora definita e "windows.h" è stato incluso.
Come posso includere un file se e solo se sto usando Visual C++?
Come è possibile impostare Visual C++ in modo che compili il codice come standard C++, contrassegnando tutte le estensioni Microsoft come errori?
per quanto ne so windows.h utilizza le estensioni microsoft – bolov
Forse qualcosa come [questo] (http://stackoverflow.com/questions/9697013/how-to-undefine-MSC-ver)? –
Passa attraverso il tuo codice base e assicurati di non includere direttamente file che non fanno parte della libreria standard. –