Pagine delle proprietà C/C++

Le pagine delle proprietà seguenti sono disponibili in Proprietà>progetto>>Proprietà configurazione C/C++:

Proprietà generali C/C++

Directory di inclusione aggiuntive

Specifica una o più directory da aggiungere al percorso di inclusione. Separare le directory con punti e virgola ('';) se sono presenti più directory. Imposta l'opzione del /I compilatore (Directory di inclusione aggiuntive).

Directory aggiuntive #using

Specifica una o più directory in cui eseguire la ricerca per risolvere i nomi passati a una #using direttiva. Separare le directory con punti e virgola ('';) se sono presenti più directory. Imposta l'opzione del /AI compilatore.

Directory BMI aggiuntive

Specifica una o più directory in cui eseguire la ricerca per risolvere i nomi passati a una import direttiva. Separare le directory con punti e virgola ('';) se sono presenti più directory. Imposta l'opzione del /ifcSearchDir[path] compilatore.

Dipendenze aggiuntive del modulo

Specifica uno o più moduli da usare per risolvere i nomi passati a una import direttiva. Separare le directory con punti e virgola ('';) se sono presenti più directory. Imposta l'opzione del /reference compilatore.

Dipendenze aggiuntive dell'unità di intestazione

Specifica una o più unità di intestazione da utilizzare per risolvere i nomi passati a una import direttiva di intestazione. Separare le directory con punti e virgola ('';) se sono presenti più directory. Imposta l'opzione del /headerUnit compilatore.

Analizzare le origini per le dipendenze dei moduli

Se impostato su , il compilatore analizza tutte le origini C++, non solo l'interfaccia del modulo e le origini unità di intestazione, per le dipendenze di unità di modulo e intestazione. Il sistema di compilazione compila il grafico delle dipendenze completo, che garantisce che tutti i moduli importati e le unità di intestazione vengano compilati prima di compilare i file che dipendono da essi. Se combinato con Translate Includes to Imports, qualsiasi file di intestazione specificato in un header-units.json file nella stessa directory del file di intestazione viene compilato in un'unità di intestazione.

I file con estensione .ixxe i file con le relative proprietà>File C/C++>Compile As sono impostati su Compila come unità di intestazione C++ (/exportHeader), vengono sempre analizzati.

Traduci include in importazioni

Se impostato su , il compilatore considera una #include direttiva come import direttiva se vengono soddisfatte determinate condizioni: il file di intestazione viene specificato in un header-units.json file nella stessa directory e un'unità di intestazione compilata (un .ifc file) è disponibile per il file di intestazione. In caso contrario, il file di intestazione viene considerato come normale #include. Il header-units.json file viene usato per creare unità di intestazione per ognuna #include senza duplicazione dei simboli. Se combinato con Le origini di analisi per le dipendenze del modulo, il compilatore trova automaticamente tutti i file di intestazione che possono essere compilati in unità di intestazione. Questa proprietà imposta l'opzione del /translateInclude compilatore.

Formato informazioni di debug

Specifica il tipo di informazioni di debug generate dal compilatore. Questa proprietà richiede impostazioni del linker compatibili. Imposta /Z7le opzioni del compilatore , /Zi/ZI (formato informazioni di debug).

Scelte

  • Nessuno: non produce informazioni di debug, quindi la compilazione può risultare più veloce.
  • Compatibile con C7: selezionare il tipo di informazioni di debug create per il programma e se queste informazioni vengono mantenute in file oggetto (.obj) o in un database di programma (PDB).
  • Database programma: produce un database di programma (PDB) che contiene informazioni sul tipo e informazioni di debug simbolico da usare con il debugger. Le informazioni di debug simbolico includono i nomi e i tipi di variabili e funzioni e i numeri di riga.
  • Programma database per modifica e continuazione: produce un database di programma, come descritto in precedenza, in un formato che supporta la funzionalità Modifica e continuazione .

Supportare solo il debug del codice

Aggiunge il codice di supporto per l'abilitazione del debug Just My Code in questa unità di compilazione. Imposta /JMC.

Supporto RunTime di Common Language

Usare il servizio runtime .NET. Questa opzione non è compatibile con altri commutatori; per informazioni dettagliate, vedere la documentazione sulla /clr famiglia di opzioni.

Scelte

  • Nessun supporto RunTime di Common Language - Nessun supporto RunTime di Common Language
  • Supporto RunTime di Common Language: crea metadati per l'applicazione che possono essere utilizzati da altre applicazioni CLR. Consente inoltre all'applicazione di utilizzare tipi e dati nei metadati di altri componenti CLR.
  • Puro supporto RunTime di Common Language MSIL: produce un file di output solo MSIL senza codice eseguibile nativo, anche se può contenere tipi nativi compilati in MSIL.
  • Supporto RunTime di Common Language MSIL sicuro: produce solo MSIL (nessun codice eseguibile nativo) e un file di output verificabile.

Utilizzare l'estensione Windows Runtime

Utilizzare le estensioni dei linguaggi di runtime di Windows. Imposta /ZW.

Non visualizzare messaggio di avvio

Elimina la visualizzazione del banner di accesso all'avvio e alla visualizzazione dei messaggi informativi durante la compilazione.

Livello avvisi

Specifica il grado di severità del controllo effettuato dal compilatore per trovare gli errori del codice. Imposta /W0 - /W4.

Scelte

  • Disattiva tutti gli avvisi: il livello 0 disabilita tutti gli avvisi.
  • Level1 : il livello 1 visualizza avvisi gravi. Il livello 1 è il livello di avviso predefinito nella riga di comando.
  • Level2 : il livello 2 visualizza tutti gli avvisi di livello 1 e gli avvisi meno gravi del livello 1.
  • Level3 : il livello 3 visualizza tutti gli avvisi di livello 2 e tutti gli altri avvisi consigliati per scopi di produzione.
  • Level4 - Livello 4 visualizza tutti gli avvisi di livello 3 e gli avvisi informativi, che nella maggior parte dei casi possono essere ignorati in modo sicuro.
  • EnableAllWarnings : abilita tutti gli avvisi, inclusi quelli disabilitati per impostazione predefinita.

Considera gli avvisi come errori

Considera gli avvisi del compilatore come errori. Per un nuovo progetto, può essere preferibile usare /WX in ogni compilazione. Risolvere tutti gli avvisi per ridurre al minimo i difetti del codice difficili da trovare.

Versione avviso

Nascondere gli avvisi introdotti dopo una versione specifica del compilatore. Imposta /Wv:xx[.yy[.zzzzz]].

Formato diagnostica

Abilita la diagnostica avanzata, con informazioni sulla colonna e contesto di origine nei messaggi di diagnostica.

Scelte

  • Cursore : fornisce informazioni sulla colonna nel messaggio di diagnostica. Restituisce inoltre la riga di codice sorgente pertinente con un cursore che indica la colonna che causa l'errore.
  • Informazioni sulla colonna: fornisce inoltre il numero di colonna all'interno della riga in cui viene eseguita la diagnostica, se applicabile.
  • Classico : restituisce solo i messaggi diagnostici precedenti e concisi con il numero di riga.

Controlli SDL

Controlli consigliati aggiuntivi del ciclo di vita dello sviluppo della sicurezza (SDL); include l'abilitazione di funzionalità di generazione di codice sicure aggiuntive e abilita avvisi aggiuntivi rilevanti per la sicurezza come errori. Imposta /sdl, /sdl-.

Compilazione a più processori

Abilitare la compilazione multiprocessore. Imposta l'opzione del /MP compilatore.

Abilitare Address Sanitizer

Compila e collega il programma con la strumentazione AddressSanitizer. Questa proprietà supporta attualmente le build di destinazione x86 e x64. Imposta l'opzione del /fsanitize compilatore.

Proprietà di ottimizzazione C/C++

Ottimizzazione

Selezionare l'opzione per l'ottimizzazione del codice; scegliere Personalizzato per usare opzioni di ottimizzazione specifiche. Imposta /Od, /O1, /O2.

Scelte

  • Personalizzato: consente di personalizzare l'ottimizzazione.
  • Disabilitato: disabilita l'ottimizzazione.
  • Ottimizzazione massima (dimensioni favori) - Equivalente a /Os /Oy /Ob2 /Gs /GF /Gy
  • Ottimizzazione massima (velocità di favore) - Equivalente a /Oi /Ot /Oy /Ob2 /Gs /GF /Gy
  • Ottimizzazioni (favor speed) - Equivalente a /Oi /Ot /Oy /Ob2

Espansione della funzione inline

Selezionare il livello di espansione della funzione inline per la compilazione. Imposta /Ob.

Scelte

  • Predefinita
  • Disabilitato : disabilita l'espansione inline, attiva per impostazione predefinita.
  • Solo __inline : espande solo le funzioni contrassegnate come inline, __forceinlineo __inline. In alternativa, in una funzione membro C++, definita all'interno di una dichiarazione di classe.
  • Qualsiasi funzione adatta : espande le funzioni contrassegnate come inline o __inline e qualsiasi altra funzione scelta dal compilatore. L'espansione si verifica a discrezione del compilatore, spesso definita inlining automatico.

Abilitare funzioni intrinseche

Abilita le funzioni intrinseche. L'uso di funzioni intrinseche genera più velocemente codice, ma possibilmente più grande. Imposta /Oi.

Favorisce dimensioni o velocità

Se favorire la dimensione del codice o la velocità del codice; 'Ottimizzazione globale' deve essere attivato. Imposta /Ot, /Os.

Scelte

  • Prediligi codice di piccole dimensioni : riduce al minimo le dimensioni di EXEs e DLL indicando al compilatore di favorire le dimensioni rispetto alla velocità.
  • Prediligi il codice rapido: ottimizza la velocità di EXEs e DLL indicando al compilatore di favorire la velocità rispetto alle dimensioni. Questo valore è il valore predefinito.
  • Nessuno dei due : nessuna dimensione e ottimizzazione della velocità.

Omettere puntatori cornice

Disabilita la creazione di puntatori ai frame nello stack di chiamate.

Abilitare ottimizzazioni fiber-safe

Abilita l'ottimizzazione dello spazio di memoria quando si usa fibre e l'accesso all'archiviazione locale del thread. Imposta /GT.

Con ottimizzazione intero programma

Abilita le ottimizzazioni tra moduli ritardando la generazione del codice per collegare il tempo. Richiede l'opzione linker Link Time Code Generation( Generazione del codice tempo di collegamento). Imposta /GL.

Proprietà del preprocessore C/C++

Definizioni del preprocessore

Definisce i simboli di pre-elaborazione per il file origine.

Rimuovi definizioni per il preprocessore

Rimuove una o più definizioni per il preprocessore. Imposta /U.

Rimuovi tutte le definizioni per il preprocessore

Rimuove tutti i valori precedentemente definiti per il preprocessore. Imposta /u.

Ignora percorsi di inclusione standard

Impedisce al compilatore di cercare i file di inclusione nelle directory specificate nelle variabili di ambiente INCLUDE.

Pre-elaborazione in un file

Pre-elabora i file di origine C e C++ e scrive l'output pre-elaborato in un file. Questa opzione elimina la compilazione e non produce un .obj file.

Pre-elaborazione Elimina numeri di riga

Pre-elaborazione senza direttive #line.

Mantieni commenti

Elimina la strip dei commenti dal codice sorgente; richiede l'impostazione di almeno una delle opzioni di pre-elaborazione. Imposta /C.

Proprietà di generazione codice C/C++

Abilitare il pool di stringhe

Il compilatore crea una sola copia di sola lettura di stringhe identiche nell'immagine del programma. Genera programmi più piccoli, un'ottimizzazione denominata pool di stringhe. /O1, /O2e /ZI imposta /GF automaticamente l'opzione .

Abilitare la ricompilazione minima

Abilita la ricompilazione minima, che determina se ricompilare i file di origine C++ che includono definizioni di classe C++ modificate, archiviate nei file di intestazione .h .

Abilita eccezioni C++

Specifica il modello di gestione delle eccezioni che deve essere usato dal compilatore.

Scelte

  • Sì con eccezioni SEH: modello di gestione delle eccezioni che rileva le eccezioni asincrone (strutturate) e sincrone (C++). Imposta /EHa.
  • : modello di gestione delle eccezioni che rileva solo le eccezioni C++ e indica al compilatore di presupporre che le funzioni C extern non generino mai un'eccezione C++. Imposta /EHsc.
  • Sì con funzioni C extern: il modello di gestione delle eccezioni che intercetta solo le eccezioni C++ e indica al compilatore di presupporre che le funzioni C extern generino un'eccezione. Imposta /EHs.
  • No: nessuna gestione delle eccezioni.

Controllo dei tipi più piccoli

Abilitare il controllo della conversione in tipi più piccoli, incompatibili con qualsiasi tipo di ottimizzazione diverso dal debug. Imposta /RTCc.

Controlli di runtime di base

Abilitare i controlli degli errori di runtime di base, incompatibili con qualsiasi tipo di ottimizzazione diverso dal debug. Imposta /RTCs, /RTCu, /RTC1.

Scelte

  • Stack Frame : abilita il controllo degli errori di runtime dello stack frame.
  • Variabili non inizializzate: segnala quando viene usata una variabile senza essere stata inizializzata.
  • Entrambi (/RTC1, equiv. a /RTCsu) - Equivalente di /RTCsu.
  • Impostazione predefinita : controlli di runtime predefiniti.

Libreria di runtime

Specifica la libreria di runtime per il collegamento. Imposta /MT, /MTd, /MD, . /MDd

Scelte

  • Multithreading : fa sì che l'applicazione usi la versione multithread statica della libreria di runtime.
  • Debug multithread: definisce _DEBUG e _MT. Questa opzione fa in modo che il compilatore inserisca il nome LIBCMTD.lib della libreria nel .obj file in modo che il linker userà LIBCMTD.lib per risolvere i simboli esterni.
  • DLL multithread: fa sì che l'applicazione usi la versione specifica del multithread e della DLL della libreria di runtime. Definisce _MT e _DLL fa in modo che il compilatore inserisca il nome della libreria MSVCRT.lib nel .obj file.
  • DLL di debug multithread: definisce _DEBUG, _MTe _DLL e fa in modo che l'applicazione usi la versione specifica del debug multithread e della DLL della libreria di runtime. Fa inoltre in modo che il compilatore inserisca il nome MSVCRTD.lib della libreria nel .obj file.

Allineamento membri struct

Specifica i limiti di 1, 2, 4 o 8 byte per l'allineamento dei membri dello struct. Imposta /Zp.

Scelte

  • 1 Byte - Comprime le strutture sui limiti a un byte . Uguale a /Zp.
  • 2 Byte : crea pacchetti di strutture su limiti a due byte.
  • 4 byte: comprime le strutture su limiti a quattro byte.
  • 8 byte : include strutture su limiti a otto byte (impostazione predefinita).
  • 16 byte : crea pacchetti di strutture su limiti di sedici byte.
  • Impostazione predefinita : impostazioni di allineamento predefinite.

Controllo di sicurezza

Il controllo di sicurezza facilita il rilevamento di sovraccarichi del buffer di stack, un attacco comunemente tentato alla sicurezza di un programma.

Scelte

  • Disabilita controllo di sicurezza: consente di disabilitare il controllo di sicurezza. Imposta /GS-.
  • Abilita controllo di sicurezza: consente di abilitare il controllo di sicurezza. Imposta /GS.

Protezione del flusso di controllo

Il controllo di sicurezza della protezione consente di rilevare i tentativi di invio a blocchi di codice non validi.

Scelte

  • : abilitare il controllo della sicurezza con i set /guard:cfdi protezione .
  • No

Abilita collegamento a livello di funzione

Consente al compilatore di assemblare le singole funzioni sotto forma di funzioni incluse nel pacchetto (COMDAT). Impostazione necessaria per le operazioni di modifica e continuazione. Imposta /Gy.

Abilitare la generazione di codice parallelo

Consente al compilatore di generare codice parallelo per i cicli identificati usando #pragma loop(hint_parallel[(n)]) quando l'ottimizzazione è abilitata.

Abilitare il set di istruzioni avanzato

Abilitare l'uso delle istruzioni disponibili nei processori che supportano set di istruzioni avanzati. Ad esempio, i miglioramenti di SSE, SSE2, AVX e AVX2 a IA-32. Inoltre, i miglioramenti di AVX e AVX2 a x64. Attualmente /arch:SSE e /arch:SSE2 sono disponibili solo quando si compila per l'architettura x86. Se non viene specificata alcuna opzione, il compilatore usa le istruzioni disponibili nei processori che supportano SSE2. L'uso di istruzioni avanzate può essere disabilitato con /arch:IA32. Per altre informazioni, vedere/arch (x86), /arch (x64), /arch (ARM64)e /arch (ARM).

Scelte

  • Streaming di estensioni SIMD : estensioni SIMD in streaming. Imposta /arch:SSE
  • Streaming SIMD Extensions 2 - Streaming SIMD Extensions 2( Streaming SIMD Extensions 2). Imposta /arch:SSE2
  • Estensioni vettoriali avanzate - Estensioni vettoriali avanzate. Imposta /arch:AVX
  • Estensioni vettoriali avanzate 2 - Estensioni vettoriali avanzate 2. Imposta /arch:AVX2
  • Nessuna istruzione avanzata: nessuna istruzione avanzata. Imposta /arch:IA32
  • Non impostato : non impostato.

Modello a virgola mobile

Imposta il modello a virgola mobile. Imposta /fp:precise, /fp:strict, /fp:fast.

Scelte

  • Preciso - Impostazione predefinita. Migliora la coerenza dei test a virgola mobile per verificare l'uguaglianza e la disuguaglianza.
  • Strict : modello a virgola mobile più rigoroso. /fp:strictfp_contract fa sì che sia OFF e fenv_access che sia ON. /fp:except è implicito e può essere disabilitato specificando in modo esplicito /fp:except-. Se usato con /fp:except-, /fp:strict applica una semantica a virgola mobile rigorosa ma senza rispetto per gli eventi eccezionali.
  • Veloce : crea il codice più veloce nella maggior parte dei casi.

Abilitare le eccezioni a virgola mobile

Modello di eccezione a virgola mobile affidabile. Le eccezioni verranno generate immediatamente dopo l'attivazione. Imposta /fp:except.

Creare un'immagine hotpatchable

Quando hotpatching è attivo, il compilatore garantisce che la prima istruzione di ogni funzione sia di due byte, come richiesto per l'applicazione di patch ad accesso frequente. Imposta /hotpatch.

Mitigazione spectre

Mitigazioni spectre per CVE 2017-5753. Imposta /Qspectre.

Scelte

  • Abilitata - Abilitare la funzionalità di mitigazione Spectre per CVE 2017-5753
  • Disabilitato : non impostato.

Proprietà del linguaggio C/C++

Disabilitare le estensioni del linguaggio

Elimina o abilita le estensioni del linguaggio. Imposta /Za.

Considerare WChar_t come tipo predefinito

Se specificato, il tipo diventa un tipo wchar_t nativo che esegue il mapping a __wchar_t nello stesso modo in cui short viene eseguito il mapping a __int16. /Zc:wchar_t è attivato per impostazione predefinita.

Forza conformità nell'ambito del ciclo For

Implementa il comportamento C++ standard per i cicli di for istruzione con le estensioni Microsoft. Imposta /Za, /Ze (disabilita le estensioni del linguaggio. /Zc:forScope è attivato per impostazione predefinita.

Rimuovere codice e dati non referenziati

Se specificato, il compilatore non genera più informazioni sui simboli per il codice e i dati non referenziati.

Applicare regole di conversione dei tipi

Usato per identificare un tipo di riferimento rvalue come risultato di un'operazione di cast in base allo standard C++11.

Abilita informazioni sui tipi in fase di esecuzione

Aggiunge il codice per controllare i tipi di oggetto C++ in fase di esecuzione (informazioni sul tipo di runtime o RTTI). Imposta /GR, /GR-.

Aprire il supporto mp

Abilita le estensioni del linguaggio OpenMP 2.0. Imposta /openmp.

Standard del linguaggio C++

Determina lo standard del linguaggio C++ abilitato dal compilatore. Il valore predefinito non imposta un'opzione standard, quindi il compilatore usa l'impostazione predefinita C++14. Se si seleziona un valore specifico, l'opzione del compilatore corrispondente /std è set.md).

Scelte

  • Impostazione predefinita (ISO C++14 Standard)
  • ISO C++14 Standard (/std:c++14)
  • ISO C++17 Standard (/std:c++17)
  • ISO C++20 Standard (/std:c++20)
  • Anteprima- Funzionalità della bozza di lavoro C++ più recente (/std:c++latest)

Standard del linguaggio C

Determina lo standard del linguaggio C abilitato dal compilatore. Il valore predefinito non imposta un'opzione standard, quindi il compilatore usa l'impostazione MSVC legacy predefinita. Se si seleziona un valore specifico, l'opzione del compilatore corrispondente /std è set.md).

Scelte

  • Impostazione predefinita (MSVC legacy)
  • ISO C11 Standard (/std:c11)
  • ISO C17 (2018) Standard (/std:c17)

Modalità di conformità

Abilita o elimina la modalità di conformità. Imposta /permissive-.

Abilitare moduli della libreria standard C++ sperimentale

Supporto sperimentale per i moduli TS e libreria standard dei moduli C++.

Compilare moduli della libreria standard ISO C++23

A partire da Visual Studio 17.6, quando questa proprietà è abilitata e C++ Language Standard è impostata su /std:c++latest, i progetti Visual C++ trovano e compilano automaticamente moduli della libreria standard ISO C++23. In questo modo è possibile o import std import std.compat nel codice C++.

Proprietà intestazioni precompilate C/C++

Crea/Usa intestazione precompilata

Abilita la creazione o l'uso di un'intestazione precompilata durante la compilazione. Imposta /Yc, /Yu.

Scelte

  • Create : indica al compilatore di creare un file di intestazione precompilato (.pch) che rappresenta lo stato della compilazione in un determinato punto.
  • Use : indica al compilatore di usare un file di intestazione precompilato esistente (.pch) nella compilazione corrente.
  • Not Using Precompiled Headers (Non uso di intestazioni precompilate) - Non usando intestazioni precompilate.

File di intestazione precompilato

Specifica il nome del file di intestazione da utilizzare durante la creazione o l'uso di un file di intestazione precompilato. Imposta /Yc, /Yu.

File di output dell'intestazione precompilato

Specifica il percorso o il nome del file di intestazione precompilato generato. Imposta /Fp.

Proprietà dei file di output C/C++

Espandi origine con attributi

Creare un file di elenco con attributi espansi inseriti nel file di origine. Imposta /Fx.

Output assembler

Specifica il contenuto del file di output in linguaggio assembly. Imposta /FA, /FAc, /FAs, . /FAcs

Scelte

  • Nessuna inserzione- Nessuna inserzione.
  • Listato solo assembly - Codice assembly; .asm
  • Assembly con codice computer - Codice computer e assembly; .cod
  • Assembly con codice sorgente - Codice sorgente e codice assembly; .asm
  • Assembly, Codice computer e origine - Assembly, codice computer e codice sorgente; .cod

Usare Unicode per la presentazione dell'assembler

Fa sì che il file di output venga creato in formato UTF-8.

Percorso elenco ASM

Specifica il percorso o il nome relativi per il file di listato ASM; può essere il nome di file o directory. Imposta /Fa.

Nome file oggetto

Consente di specificare un nome usato per eseguire l'override del nome del file oggetto predefinito. Può essere un nome di file o di directory. Imposta /Fo.

Nome file del database di programma

Specifica un nome per un file PDB generato dal compilatore; specifica anche il nome di base per il file IDB generato dal compilatore richiesto; può essere il nome di file o directory. Imposta /Fd.

Generare file di documentazione XML

Specifica che il compilatore deve generare file di commento della documentazione XML (. XDC). Imposta /doc.

Nome file della documentazione XML

Specifica il nome dei file di documentazione XML generati; può essere il nome di file o directory. Imposta /doc:<il nome>.

Proprietà di esplorazione delle informazioni C/C++

Abilitare le informazioni di esplorazione

Specifica il livello di informazioni di esplorazione nel .bsc file. Imposta /FR.

Esplora file di informazioni

Specifica il nome facoltativo per il file di informazioni del browser. Imposta /FR<il nome>.

Include esterne

Trattare i file inclusi con parentesi angolari come esterni

Specifica se trattare i file inclusi tra parentesi angolari come esterni. Impostare questa proprietà su per impostare l'opzione del /external:anglebrackets compilatore.

Livello di avviso intestazione esterna

Selezionare il modo in cui si vuole che il compilatore sia in merito agli errori di codice nelle intestazioni esterne. Questa proprietà imposta l'opzione del /external:Wn compilatore. Se questo valore è impostato su Eredita livello avviso progetto o impostazione predefinita, le altre /external opzioni vengono ignorate.

Diagnostica dei modelli nelle intestazioni esterne

Specifica se valutare il livello di avviso in una catena di creazione di istanze del modello. Impostare questa proprietà su per impostare l'opzione del /external:templates- compilatore.

Disabilitare l'analisi del codice per le intestazioni esterne

Disabilita l'analisi del codice per le intestazioni esterne. Imposta l'opzione del /analyze:external- compilatore.

Set di regole di analisi per intestazioni esterne

Specifica un override del set di regole di analisi del codice per le intestazioni esterne. Se non specificato, viene utilizzata l'impostazione Analisi codice. Imposta l'opzione del /analyze:external:ruleset path compilatore.

Proprietà avanzate C/C++

Convenzione di chiamata

Selezionare la convenzione di chiamata predefinita per l'applicazione (può essere sottoposta a override dalla funzione). Imposta /Gd, /Gr, /Gz, . /Gv

Scelte

  • __cdecl - Specifica la __cdecl convenzione di chiamata per tutte le funzioni tranne le funzioni membro C++ e le funzioni contrassegnate __stdcall o __fastcall.
  • __fastcall - Specifica la __fastcall convenzione di chiamata per tutte le funzioni tranne le funzioni membro C++ e le funzioni contrassegnate __cdecl o __stdcall. Tutte le funzioni __fastcall devono avere prototipi.
  • __stdcall - Specifica la __stdcall convenzione di chiamata per tutte le funzioni tranne le funzioni membro C++ e le funzioni contrassegnate __cdecl o __fastcall. Tutte le funzioni __stdcall devono avere prototipi.
  • __vectorcall - Specifica la convenzione di __vectorcall chiamata per tutte le funzioni tranne le funzioni membro C++ e le funzioni contrassegnate come __cdecl, __fastcallo __stdcall. Tutte le funzioni __vectorcall devono avere prototipi.

Compila come

Selezionare l'opzione compila lingua per i file di origine. Imposta /TCle opzioni ,/TP , /interface, /internalPartitiono /exportHeader .

Scelte

  • Predefinita: impostazione predefinita.
  • Compila come codice C (/TC): compila i file di origine specificati come codice C. Per impostazione predefinita, i file con estensione .c vengono compilati come C.
  • Compila come codice C++ (/TP): compila i file di origine specificati come codice C++. Per impostazione predefinita, tutti i file di origine che non dispongono di un'estensione .c, .ixx.cppm, .ho non sono compilati come C++.
  • Compila come codice del modulo C++ (/interface): compila i file di origine specificati come codice del modulo C++. Per impostazione predefinita, i file con un'estensione .ixx o .cppm vengono compilati come codice del modulo C++.
  • Compila come partizione interna del modulo C++ (/internalPartition): compila i file di origine specificati come partizione interna del modulo C++.
  • Compila come unità di intestazione C++ (/exportHeader): compila i file di origine specificati come unità di intestazione C++. Per impostazione predefinita, i file con estensione .h o nessuna estensione vengono compilati come unità di intestazione.

Disabilitare avvisi specifici

Disabilitare i numeri di avviso specificati. Inserire i numeri di avviso in un elenco delimitato da punti e virgola. Imposta /wd<il numero>.

File di inclusione forzato

Uno o più file di inclusione il cui uso è forzato. Imposta /FI<il nome>.

File #using forzato

Specifica uno o più file #using forzati. Imposta /FU<il nome>.

Mostra inclusioni

Indica al compilatore di generare un elenco dei file di inclusione. Imposta /showIncludes.

Usare percorsi completi

Usare percorsi completi nei messaggi di diagnostica. Imposta /FC.

Omettere il nome predefinito della libreria

Non include nomi di libreria predefiniti nei .obj file. Imposta /Zl.

Segnalazione errori interni del compilatore

Nota

Questa opzione è deprecata. A partire da Windows Vista, la segnalazione degli errori è controllata dalle impostazioni di Segnalazione errori Windows (WER).

Considerare avvisi specifici come errori

Considera l'avviso del compilatore specifico come un errore in cui n è un avviso del compilatore.

Opzioni aggiuntive

Opzioni aggiuntive.