Knihovna aktivních šablon - Active Template Library

Knihovna aktivních šablon
VývojářiMicrosoft
NapsánoC ++
Operační systémMicrosoft Windows
TypKnihovna nebo rámec
LicenceProprietá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 a
  • CComSafeArray [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é

Reference

  1. ^ Grimes, Richard (1998). "ATL a COM". ATL COM (1. vyd.). Wrox Press. str.6. ISBN  1-86100-249-1.
  2. ^ 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.
  3. ^ Williams, Mickey (2000). "Aktivní dokumenty". Visual C ++ 6 Unleashed (1. vyd.). Sams. str. 733. ISBN  978-0-672-31241-0.
  4. ^ Microsoft MSDN: Doporučení pro výběr mezi ATL a MFC
  5. ^ „Aktualizace zabezpečení ATL“. MSDN. Microsoft. 2009-07-28. Citováno 2011-09-19.
  6. ^ 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
  7. ^ Microsoft MSDN: CComPtr Class
  8. ^ Microsoft MSDN: CComBSTR Class
  9. ^ Microsoft MSDN: CComVariant Třída
  10. ^ Microsoft MSDN: CComSafeArray - třída
  11. ^ Microsoft MSDN: _com_ptr_t třída
  12. ^ Microsoft MSDN: _bstr_t třída
  13. ^ Microsoft MSDN: _variant_t třída
  14. ^ Microsoft MSDN: _com_error Třída

externí odkazy