連結到 ATL 專案中的 CRT
C 執行時間程式庫 (CRT) 提供許多實用的函式,可讓程式設計在 ATL 開發期間更容易。 所有 ATL 專案都會連結至 CRT 程式庫。 您可以在連結方法的權益和取捨中 查看連結方法的優缺點,以及用來連結至 CRT 的方法。
連結至 CRT 對程式影像的影響
如果您以靜態方式連結至 CRT,則來自 CRT 的程式碼會放在可執行檔映射中,而且您不需要在系統上有 CRT DLL,即可執行映射。 如果您動態連結至 CRT,則 CRT DLL 中程式碼的參考會放在您的映射中,而不是程式碼本身。 為了讓映射在指定的系統上執行,CRT DLL 必須存在於該系統上。 即使您動態連結至 CRT,您可能會發現某些程式碼可以靜態連結(例如 , DllMainCRTStartup
)。
當您連結映射時,您可以明確或隱含地指定作業系統在載入映射之後呼叫的進入點。 若為 DLL,預設進入點為 DllMainCRTStartup
。 針對 EXE,它是 WinMainCRTStartup
。 您可以使用 /ENTRY 連結器選項覆寫預設值。 CRT 提供 、 WinMainCRTStartup
和 wWinMainCRTStartup
的實 DllMainCRTStartup
作(EXE 的 Unicode 進入點)。 這些 CRT 提供的進入點會呼叫全域物件上的建構函式,並初始化某些 CRT 函式所使用的其他資料結構。 如果影像以靜態方式連結,則此啟動程式碼會將大約 25K 新增至您的映射。 如果以動態方式連結,大部分程式碼都會位於 DLL 中,因此您的影像大小會保持較小。
如需詳細資訊,請參閱連結器主題 /ENTRY(進入點符號)。
最佳化選項
使用連結器選項 /OPT:NOWIN98可以進一步減少預設 ATL 控制項 10K,代價是在 Windows 98 系統上增加載入時間。 如需連結選項的詳細資訊,請參閱 /OPT(優化)。