Поделиться через


/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

  1. Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.

  2. Перейдите на страницу свойств Свойства конфигурации>C/C++>Командная строка.

  3. В дополнительных параметрах добавьте /Zc:tlsGuards. Нажмите кнопку "ОК" или "Применить", чтобы сохранить изменения.

См. также

/Zc (Соответствие)\