2011-10-19 21 views
9

Wiem "WTL opiera się na ATL", ale co to oznacza w praktyce?Jaka jest różnica między ATL i WTL?

Czy ATL jest podzbiorem WTL pod względem funkcji? (tj. czy WSZYSTKIE funkcje ATL są również obecne w WTL?) Zauważam, że Wikipedia stwierdza, że ​​status rozwoju ATL jest "aktualny", podczas gdy ostatnie wydanie WTL pochodzi z połowy 2009 roku. Czy to oznacza, że ​​jeśli chcę napisać oprogramowanie Windows 7 używając Glass/Aero i innych funkcji Windows 7, to nie mogę tego zrobić za pomocą WTL? A co z ATL?

Czy występuje różnica wydajności/pamięci w programach napisanych w ATL w porównaniu z WTL?

+0

Jaka jest różnica między wielorybami a delfinami? Delfiny * są * podzestawem waleni, rzędu wielorybów. WTL opiera się na ATL, więc tak ATL jest podzbiorem WTL. – 0xC0000022L

Odpowiedz

15

ATL to biblioteka Microsoft C++, która przede wszystkim implementuje bazę COM. Część jego dotyczy również formantów ActiveX (co zdecydowanie nie jest głównym celem całej biblioteki) i obejmuje również pokrewne elementy, takie jak cienkie opakowanie klasy HWND (CWindow), klasy manipulacji łańcuchami znaków CString, CStringA, CStringW, ANSI/Unicode konwersja itp.

Część ATL została rozgałęziona do biblioteki Open Source ATL Server hostowanej na CodePlex. Nadal można znaleźć dla niego dokumentację na MSDN wybierając wersję ATL z powrotem do wersji Visual Studio 2002/2003/2005. Dotyczy to głównie tworzenia aplikacji internetowych, usług IIS, a także obejmuje funkcje takie jak wyrażenia regularne.

WTL pierwotnie miało być używane z ATL i obejmuje aspekty związane z GUI, takie jak cienkie obwoluty nad standardowymi kontrolkami, obiekt GDI, szkielet GUI aplikacji, model ramowy/wideo, niestandardowe elementy sterujące. Dostarczył on klasę CString zanim ATL zaczął to robić, i jest to jedna z rzeczy, na które nakładają się dwie biblioteki. Po uruchomieniu WTL źródło i Microsoft dostarczył darmową wersję Visual Studio, WTL został również zaktualizowany do użycia bez ATL, więc pomocna może być budowa aplikacji za pomocą narzędzi tylko bezpłatnych.

2

ATL został stworzony dla formantów ActiveX, tj. Formantów, które istnieją w niezależnej aplikacji. WTL ma wypełnić luki w ATL, zapewniając klasy dla samej aplikacji. Są przeznaczone do użycia razem.

+0

Aby dodać do tego, co powiedział @ Mark-Ransom: WTL jest projektem typu opensource, podjętym przez pracownika firmy Microsoft i nie będącym produktem firmy Microsoft. ATL jest produktem opracowanym przez Microsoft. Jeśli chcesz rozwijać program Win7, lepiej zrób to za pomocą WPF (zakładając, że twoja aplikacja jest oparta na GUI) zamiast używać ATL. – yasouser

7

Tak. WTL opiera się na ATL. Jednak wywołanie ATL podzbioru jest nieprawidłowe. ATL stanowi samodzielną alternatywę w stosunku do podejścia MFC programowania w systemach operacyjnych Windows. O wiele mniej przydaje się kod. ATL zajmuje się praktycznie wszystkim, z wyjątkiem rzeczywistych okien, okien dialogowych itp.

WTL jest szablonową alternatywą dla modelu okienkowego MFC w taki sam sposób, w jaki ATL stanowi alternatywę dla innych usług Windows. WTL potrzebuje ATL. Nie na odwrót.

Artykuły Dunna na temat codeproject dają całkiem niezłą recenzję WTL.

WTL for MFC Programmers, Part I - ATL GUI Classes jest pierwszym z serii. Nawigacja łączy z innymi artykułami z serii znajdują się na dole każdego z nich.

+0

Dobra odpowiedź! Byłoby jeszcze lepiej, gdybyś mógł linkować do artykułów, o których mówisz. :-) Witamy w Stack Overflow! –

Powiązane problemy