Knihovna aktivních šablon - Active Template Library
Vývojáři | Microsoft |
---|---|
Napsáno | C ++ |
Operační systém | Microsoft Windows |
Typ | Knihovna nebo rámec |
Licence | Proprietární |
The Knihovna aktivních šablon (ATL) je sada založená na šablonách C ++ třídy vyvinuté Microsoft, jehož cílem je zjednodušit programování Komponentní objektový model (COM) objekty. Podpora COM v Microsoft Visual C ++ umožňuje vývojářům vytvářet různé objekty COM, Automatizace OLE servery a ActiveX řízení.[1][2] ATL obsahuje průvodce objekty, který rychle nastaví primární strukturu objektů s minimem ručního kódování. Na straně klienta COM poskytuje ATL inteligentní ukazatele které se zabývají počítáním referencí COM. Knihovna hojně využívá podivně se opakující vzor šablony.
Dějiny
Objekty COM lze také vytvořit pomocí Třídy Microsoft Foundation (MFC), ale to vede k větším binárním souborům, které vyžadují podporu DLL.[3] ATL, na druhou stranu, je lehčí alternativou v situacích, kdy nejsou vyžadovány části grafického uživatelského rozhraní MFC.[4]
V ATL verze 7 (Visual Studio 2003), která přímo uspěla ve verzi 3 (Visual Studio 6.0), byla v ATL zpřístupněna řada tříd MFC, jako je CString, nebo přesněji přesunuta do společné vrstvy ATLMFC, kterou sdílejí obě knihovny. ATL verze 7 také představila atributy v C ++ ve snaze poskytnout něco podobného Atributy CLI, nicméně tyto nebyly nijak zvlášť úspěšné a byly zdůrazněny v ATL verze 8 (Visual Studio 2005); různí čarodějové je již ve výchozím nastavení negenerují. Verze 7 také představila nové třídy převodu řetězců.
Dne 28. července 2009 společnost Microsoft vydala opravu ATL, která opravila chybu, která mohla připustit ActiveX ovládací prvky vytvořené pomocí ATL, aby byly zranitelné vůči bezpečnostní chybě vzdáleného spuštění kódu.[5]
Od Visual Studio 2013 je kód ATL v Visual C ++ 2013 statický, což vylučuje DLL.[6]
Třídy podpory
ATL zahrnuje mnoho RAII třídy pro zjednodušení správy typů COM. Mezi nejčastěji používané třídy patří:
CComPtr
[7] univerzální inteligentní ukazatel,CComBSTR
[8] Obal BSTR,CComVariant
[9] VARIANTNÍ obal aCComSafeArray
[10] Obal SAFEARRAY.
Podpora kompilátoru COM
Microsoft Visual C ++, i když není formálně součástí ATL, obsahuje také další třídy C ++ RAII pro zjednodušení správy typů COM. Tyto podpora kompilátoru COM třídy lze použít jako náhradu za ATL nebo v kombinaci s ATL a zahrnují:
_com_ptr_t
[11] smart-pointer, který zdobí název rozhraní COM příponou "Ptr",_bstr_t
[12] Obal BSTR,_variant_t
[13] VARIANTNÍ obal a_com_error
[14] Obálka HRESULT.
Všimněte si, že od verze Visual Studio 2012 třídy kompilátoru COM neobsahují obálku SAFEARRAY.
Viz také
- ATL server
- C ++ / CX
- Automatizace OLE
- Standardní knihovna šablon
- Knihovna šablon Windows
- Microsoft Windows SDK
- Seznam knihoven šablon C ++
Reference
- ^ Grimes, Richard (1998). "ATL a COM". ATL COM (1. vyd.). Wrox Press. str.6. ISBN 1-86100-249-1.
- ^ Grimes, Richard (1999). "Vytváření a volání objektu COM pomocí ATL". Počínaje programováním ATL 3 COM (1. vyd.). Wrox Press. str.63. ISBN 978-1-86100-120-7.
- ^ Williams, Mickey (2000). "Aktivní dokumenty". Visual C ++ 6 Unleashed (1. vyd.). Sams. str. 733. ISBN 978-0-672-31241-0.
- ^ Microsoft MSDN: Doporučení pro výběr mezi ATL a MFC
- ^ „Aktualizace zabezpečení ATL“. MSDN. Microsoft. 2009-07-28. Citováno 2011-09-19.
- ^ Změny a opravy ATL a MFC v sadě Visual Studio 2013 http://blogs.msdn.com/b/vcblog/archive/2013/08/20/atl-and-mfc-changes-and-fixes-in-visual-studio-2013.aspx
- ^ Microsoft MSDN: CComPtr Class
- ^ Microsoft MSDN: CComBSTR Class
- ^ Microsoft MSDN: CComVariant Třída
- ^ Microsoft MSDN: CComSafeArray - třída
- ^ Microsoft MSDN: _com_ptr_t třída
- ^ Microsoft MSDN: _bstr_t třída
- ^ Microsoft MSDN: _variant_t třída
- ^ Microsoft MSDN: _com_error Třída