Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opmerking
De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Standaard genereert de wizard ATL-beheer nieuwe klassen met de macro ATL_NO_VTABLE als volgt:
class ATL_NO_VTABLE CProjName
{
...
};
ATL definieert vervolgens _ATL_NO_VTABLE als volgt:
#ifdef _ATL_DISABLE_NO_VTABLE
#define ATL_NO_VTABLE
#else
#define ATL_NO_VTABLE __declspec(novtable)
#endif
Als u _ATL_DISABLE_NO_VTABLE niet definieert, wordt de ATL_NO_VTABLE macro uitgebreid naar declspec(novtable). Als u een klassedeclaratie gebruikt declspec(novtable), voorkomt u dat de vtable-aanwijzer wordt geïnitialiseerd in de klasseconstructor en destructor. Wanneer u uw project bouwt, elimineert de linker de vtable en alle functies waarnaar de vtable punten.
U moet ATL_NO_VTABLE en dus declspec(novtable)alleen basisklassen gebruiken die niet rechtstreeks kunnen worden creaeerbaar. U mag niet gebruiken declspec(novtable) met de meest afgeleide klasse in uw project, omdat deze klasse (meestal CComObject, CComAggObject of CComPolyObject) de vtable-aanwijzer voor uw project initialiseert.
U mag geen virtuele functies aanroepen vanuit de constructor van een object dat gebruikmaakt van declspec(novtable). U moet deze aanroepen verplaatsen naar de FinalConstruct-methode .
Als u niet zeker weet of u de declspec(novtable) wijzigingsfunctie moet gebruiken, kunt u de ATL_NO_VTABLE macro verwijderen uit elke klassedefinitie of u kunt deze globaal uitschakelen door deze op te geven
#define _ATL_DISABLE_NO_VTABLE
in pch.h (stdafx.h in Visual Studio 2017 en eerder), voordat alle andere ATL-headerbestanden worden opgenomen.
Zie ook
ATL-projectwizard
C++ project-typen in Visual Studio
Programmeren met ATL en C Run-Time Code
Basisprincipes van ATL COM-objecten
novtable
Standaard-ATL-projectconfiguraties