Freigeben über


/Zc:tlsGuards (Überprüfen der TLS-Initialisierung)

Die /Zc:tlsGuards Compileroption generiert Laufzeitüberprüfungen für die Initialisierung von Thread local storage (TLS) in DLLs.

Syntax

/Zc:tlsGuards[-]

Hinweise

Mit der /Zc:tlsGuards Compileroption wird die Initialisierung von threadlokalen Variablen in DLLs aktiviert. Zuvor wurden lokale Threadvariablen in DLLs nicht ordnungsgemäß initialisiert. Anders als beim Thread, der die DLL geladen hat, wurden sie bei Threads, die bereits vor dem Laden der DLL vorhanden waren, vor der ersten Verwendung nicht initialisiert. Die /Zc:tlsGuards Option aktiviert Code, der diesen Fehler korrigiert. Threadlokale Variablen in einer solchen DLL werden sofort initialisiert, bevor sie zum ersten Mal in solchen Threads verwendet werden.

Die /Zc:tlsGuards Option ist neu in Visual Studio 2019, Version 16.5. Diese Option ist standardmäßig in allen Compilermodi aktiviert. Das neue Verhalten von Tests für die Initialisierung bei Verwendung von threadlokalen Variablen kann mithilfe der /Zc:tlsGuards- Compileroption deaktiviert werden. Verwenden Sie das [[msvc::no_tls_guard]] Attribut, um Die Überprüfungen für bestimmte threadlokale Variablen zu deaktivieren.

So legen Sie diese Compileroption in Visual Studio fest

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).

  2. Klicken Sie auf der Eigenschaftenseite auf Konfigurationseigenschaften>C/C++>Befehlszeile.

  3. Fügen Sie in /Zc:tlsGuardszusätzlichen Optionen hinzu. Wählen Sie OK oder Übernehmen, um die Änderungen zu speichern.

Weitere Informationen

/Zc (Konformität)\