Partager via


/Zc:tlsGuards (Vérifier l’initialisation TLS)

L’option /Zc:tlsGuards du compilateur génère des case activée d’exécution pour l’initialisation tls (Thread Local Storage) dans les DLL.

Syntaxe

/Zc:tlsGuards[-]

Notes

L’option /Zc:tlsGuards du compilateur active les case activée pour l’initialisation de variables locales de threads dans les DLL. Auparavant, les variables locales de thread dans les DLL n’étaient pas correctement initialisées. À part sur le thread qui chargeait la DLL, elles n’étaient pas initialisées avant la première utilisation sur les threads qui existaient avant le chargement de la DLL. L’option active le /Zc:tlsGuards code qui corrige ce défaut. Les variables locales de thread dans une telle DLL sont initialisées immédiatement avant leur première utilisation sur de tels threads.

L’option /Zc:tlsGuards est nouvelle dans Visual Studio 2019 version 16.5. Cette option est activée par défaut dans tous les modes du compilateur. Le nouveau comportement de test pour l’initialisation sur les utilisations de variables locales de thread peut être désactivé à l’aide de l’option du /Zc:tlsGuards- compilateur. Pour désactiver les case activée pour des variables locales de thread spécifiques, utilisez l’attribut[[msvc::no_tls_guard]].

Pour définir cette option de compilateur dans Visual Studio

  1. Ouvrez la boîte de dialogue Pages de propriété du projet. Pour plus d’informations, consultez Définir le compilateur C++ et les propriétés de build dans Visual Studio.

  2. Sélectionnez la page de propriétés Propriétés de configuration>C/C++>Ligne de commande.

  3. Dans Options supplémentaires, ajoutez /Zc:tlsGuards. Choisissez OK ou Appliquer pour enregistrer vos modifications.

Voir aussi

/Zc (Conformité)\