/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
. Нажмите кнопку "ОК" или "Применить", чтобы сохранить изменения.