Tworzenie linków do CRT w projekcie ATL
Biblioteki czasu wykonywania języka C (CRT) udostępniają wiele przydatnych funkcji, które mogą znacznie ułatwić programowanie podczas programowania ATL. Wszystkie projekty ATL łączą się z biblioteką CRT. Zalety i wady metody łączenia można zobaczyć w sekcji Korzyści i kompromisy metody używanej do łączenia z CRT.
Efekty łączenia z CRT na obrazie programu
Jeśli statycznie łączysz się z CRT, kod z CRT zostanie umieszczony na obrazie wykonywalnym i nie musisz mieć biblioteki DLL CRT obecnej w systemie, aby uruchomić obraz. Jeśli dynamicznie łączysz się z CRT, odwołania do kodu w pliku DLL CRT są umieszczane na obrazie, ale nie sam kod. Aby obraz był uruchamiany w danym systemie, biblioteka DLL CRT musi znajdować się w tym systemie. Nawet jeśli dynamicznie łączysz się z CRT, możesz stwierdzić, że niektóre kody mogą być statycznie połączone (na przykład DllMainCRTStartup
).
Po połączeniu obrazu jawnie lub niejawnie określ punkt wejścia, do którego system operacyjny zostanie wywołany po załadowaniu obrazu. W przypadku biblioteki DLL domyślnym punktem wejścia jest DllMainCRTStartup
. W przypadku pliku EXE jest to WinMainCRTStartup
. Możesz zastąpić wartość domyślną opcją konsolidatora /ENTRY. CRT zapewnia implementację dla DllMainCRTStartup
, WinMainCRTStartup
i wWinMainCRTStartup
(punkt wejścia Unicode dla pliku EXE). Te punkty wejścia dostarczane przez CRT wywołuje konstruktory obiektów globalnych i inicjują inne struktury danych, które są używane przez niektóre funkcje CRT. Ten kod startowy dodaje około 25K do obrazu, jeśli jest połączony statycznie. Jeśli jest on połączony dynamicznie, większość kodu znajduje się w dll, więc rozmiar obrazu pozostaje niewielki.
Aby uzyskać więcej informacji, zobacz temat konsolidatora /ENTRY (symbol punktu wejścia).
Opcje optymalizacji
Użycie opcji konsolidatora /OPT:NOWIN98 może jeszcze bardziej zmniejszyć domyślną kontrolę ATL o 10 000, kosztem zwiększonego czasu ładowania w systemach Windows 98. Aby uzyskać więcej informacji na temat opcji łączenia, zobacz /OPT (Optymalizacje).
Zobacz też
Programowanie za pomocą kodu ATL i C Run-Time
Zachowanie biblioteki wykonawczej DLL i Visual C++