Verlinkung mit der CRT unter „Ihr ATL-Projekt“
Die C-Laufzeitbibliotheken (C Run-Time Libraries , CRT) bieten viele nützliche Funktionen, die die Programmierung während der ATL-Entwicklung erheblich vereinfachen können. Alle ATL-Projekte sind mit der CRT-Bibliothek verknüpft. Sie können die Vor- und Nachteile der Verknüpfungsmethode in "Benefits" und "Tradeoffs" der Methode sehen, die zum Verknüpfen mit dem CRT verwendet wird.
Auswirkungen der Verknüpfung mit dem CRT auf Ihr Programmbild
Wenn Sie eine Statisch-Verknüpfung mit dem CRT herstellen, wird der Code aus dem CRT in Ihrem ausführbaren Image platziert, und Sie müssen die CRT-DLL nicht auf einem System vorhanden haben, um Ihr Image auszuführen. Wenn Sie dynamisch eine Verknüpfung mit dem CRT herstellen, werden Verweise auf den Code in der CRT-DLL in Ihr Bild eingefügt, aber nicht der Code selbst. Damit Ihr Image auf einem bestimmten System ausgeführt werden kann, muss die CRT-DLL auf diesem System vorhanden sein. Selbst wenn Sie dynamisch eine Verknüpfung mit dem CRT herstellen, stellen Sie möglicherweise fest, dass ein Code statisch verknüpft werden kann (z. B DllMainCRTStartup
. ).
Wenn Sie Ihr Image verknüpfen, geben Sie entweder explizit oder implizit einen Einstiegspunkt an, den das Betriebssystem nach dem Laden des Images aufruft. Bei einer DLL ist DllMainCRTStartup
der Standardeinstiegspunkt . Für eine EXE ist WinMainCRTStartup
es . Sie können die Standardeinstellung mit der Option "/ENTRY linker" überschreiben. Das CRT bietet eine Implementierung für DllMainCRTStartup
, WinMainCRTStartup
und wWinMainCRTStartup
(den Unicode-Einstiegspunkt für eine EXE). Diese crT-bereitgestellten Einstiegspunkte rufen Konstruktoren für globale Objekte auf und initialisieren andere Datenstrukturen, die von einigen CRT-Funktionen verwendet werden. Dieser Startcode fügt ihrem Bild etwa 25K hinzu, wenn es statisch verknüpft ist. Wenn sie dynamisch verknüpft ist, befindet sich der großteil des Codes in der DLL, sodass die Bildgröße klein bleibt.
Weitere Informationen finden Sie im Linkerthema /ENTRY (Entry-Point Symbol).For more information, see the linker topic /ENTRY (Entry-Point Symbol).
Optimierungsoptionen
Durch die Verwendung der Linkeroption /OPT:NOWIN98 kann ein Standard-ATL-Steuerelement um 10K weiter reduziert werden, auf Kosten der erhöhten Ladezeit auf Windows 98-Systemen. Weitere Informationen zu Verknüpfungsoptionen finden Sie unter /OPT (Optimierungen).
Siehe auch
Programmieren mit ATL- und C-Laufzeitcode
Verhalten der Laufzeitbibliothek für DLLs und Visual C++