Zweck der Attribute
Erweitern von Attributen in C++ die Anweisungen zur Zeit nicht möglich, ohne die klassische Struktur der Sprache zu unterbrechen.Attribute können Anbieter (separaten DLL) Um die Sprache dynamisch zu erweitern.Das Hauptziel von Attributen ist die Erstellung von COM-Komponenten zusätzlich zum Verbessern der Produktivität zu vereinfachen, die vom Komponentenentwickler.Attribute können in nahezu jedem beliebigen C++-Konstrukt, z. B. Klassen, Datenmember oder Memberfunktionen angewendet werden.Im Folgenden finden Sie eine Hervorhebung von den Vorteilen, die von dieser neuen Technologie bereitgestellt werden:
Macht eine vertraute und einfache Aufrufkonvention.
Wird eingefügten Code, außer Makros vom Debugger erkannt wird.
Ermöglicht einfache Ableitung von den Basisklassen ohne lästige Implementierungsdetails.
Ersetzt die große Menge von IDL-Code von einer COM-Komponente müssen einige kurze Attribute.
Um beispielsweise eine einfache Ereignissenke für eine generische ATL-Klasse zu implementieren, können Sie das event_receiver-Attribut auf eine bestimmte Klasse wie CMyReceiveranwenden.Das event_receiver-Attribut wird dann vom Visual C++-Compiler kompiliert, der den richtigen Code in der Objektdatei einfügt.
[event_receiver(com)]
class CMyReceiver
{
void handler1(int i) { ... }
void handler2(int i, float j) { ... }
}
Sie können die CMyReceiver-Methoden handler1handler2 und dann auf Installieren, um Ereignisse (unter Verwendung der systeminternen Funktion __hook) aus einer Ereignisquelle zu behandeln, die Sie mithilfe event_sourceerstellen können.