共用方式為


/Zc:tlsGuards (檢查 TLS 初始化)

編譯 /Zc:tlsGuards 程式選項會產生 DLL 中線程本機儲存體 (TLS) 初始化的執行時間檢查。

語法

/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. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性

  2. 選取 [組態屬性]>[C/C++]>[命令列] 屬性頁。

  3. 在 [其他選項] 中 ,新增 /Zc:tlsGuards 選擇 [確定 ] 或 [ 套用 ] 以儲存您的變更。

另請參閱

/Zc (一致性)\