連結到 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(優化)。