Sdílet prostřednictvím


Propojení projektu ATL s knihovnami CRT

Knihovny C runtime (CRT) poskytují mnoho užitečných funkcí, které můžou usnadnit programování během vývoje ATL. Všechny projekty ATL odkazují na knihovnu CRT. Výhody a nevýhody propojování metody můžete zobrazit v části Výhody a kompromisy metody použité k propojení s CRT.

Efekty propojení s CRT na vašem obrázku programu

Pokud staticky propojete s CRT, kód z CRT se umístí do spustitelného obrázku a není nutné mít knihovnu CRT DLL v systému pro spuštění image. Pokud dynamicky propojíte s CRT, odkazy na kód v knihovně CRT DLL jsou umístěny na vašem obrázku, ale ne samotný kód. Aby byla image spuštěna v daném systému, musí být v daném systému k dispozici knihovna DLL CRT. I když dynamicky propojíte s CRT, můžete zjistit, že určitý kód může být staticky propojený (například DllMainCRTStartup).

Když image propojíte, explicitně nebo implicitně zadáte vstupní bod, do kterého operační systém po načtení image zavolá. Pro knihovnu DLL je DllMainCRTStartupvýchozím vstupním bodem . Pro EXE je WinMainCRTStartupto . Výchozí nastavení můžete přepsat pomocí možnosti /ENTRY linker. CRT poskytuje implementaci pro DllMainCRTStartup, WinMainCRTStartupa wWinMainCRTStartup (vstupní bod Unicode pro EXE). Tyto vstupní body poskytované CRT volají konstruktory globálních objektů a inicializují jiné datové struktury, které používají některé funkce CRT. Tento spouštěcí kód přidá do obrázku přibližně 25 K, pokud je propojen staticky. Pokud je propojen dynamicky, většina kódu je v knihovně DLL, takže velikost obrázku zůstane malá.

Další informace najdete v tématu linkeru /ENTRY (symbol vstupního bodu).

Možnosti optimalizace

Pomocí možnosti linkeru /OPT:NOWIN98 může dále snížit výchozí ovládací prvek ATL o 10 tisíc, a to na úkor zvýšené doby načítání v systémech Windows 98. Další informace o možnostech propojení najdete v tématu /OPT (optimalizace).

Viz také

Programování s použitím knihovny ATL a běhového kódu jazyka C
Knihovny DLL a chování běhové knihovny v jazyce Visual C++