/Zc:tlsGuards
(Проверка инициализации TLS)
Параметр /Zc:tlsGuards
компилятора создает проверка среды выполнения для инициализации локального хранилища потоков (TLS) в библиотеках DLL.
Синтаксис
/Zc:tlsGuards
[-
]
Замечания
Параметр /Zc:tlsGuards
компилятора включает проверка для инициализации локальных переменных потока в библиотеках DLL. Ранее локальные по отношению к потоку переменные в библиотеках DLL не инициализировались должным образом. За исключением потока, загрузившего библиотеку DLL, они не инициализировались до их первого использования в потоках, существовавших до загрузки библиотеки DLL. Параметр /Zc:tlsGuards
включает код, исправляющий этот дефект. Локальные по отношению к потоку переменные в подобной библиотеке DLL инициализируются непосредственно перед их первым использованием в таких потоках.
Этот /Zc:tlsGuards
параметр доступен в Visual Studio 2019 версии 16.5. Этот параметр включен по умолчанию во всех режимах компилятора. Новое поведение тестирования для инициализации при использовании локальных переменных потока может быть отключено с помощью параметра компилятора /Zc:tlsGuards-
. Чтобы отключить проверка для определенных переменных потока, используйте [[msvc::no_tls_guard]]
атрибут.
Установка параметра компилятора в Visual Studio
Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.
Перейдите на страницу свойств Свойства конфигурации>C/C++>Командная строка.
В дополнительных параметрах добавьте
/Zc:tlsGuards
. Нажмите кнопку "ОК" или "Применить", чтобы сохранить изменения.
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по