/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 中設定這個編譯器選項
開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性。
選取 [組態屬性]>[C/C++]>[命令列] 屬性頁。
在 [其他選項] 中,新增
/Zc:tlsGuards
。 選擇 [確定] 或 [套用] 以儲存變更。