Warum wurde die Option zur Verwendung von Attributen in neuen ATL-Projekten aus Visual Studio 2008 entfernt?
-
09-06-2019 - |
Frage
Dies ist der Text aus dem MSDN-Kommentar:„Laut dem Buch ATL Internals (2ed) ist die Verwendung von Attributen veraltet und sollte in neuen ATL-Projekten nicht verwendet werden.“
Aber warum?!!
Lösung
In ATL waren diese Attribute ein Compiler-Trick.Sie waren kein zentraler Bestandteil der Plattform wie Attribute in C#.Außerdem war das Debuggen mit ihnen verwirrender als mit Makros, und die Methode zum Speichern des generierten Attributcodes war mühsam.
Ich vermute, dass ein weiteres Problem wahrscheinlich die Kompatibilität des C++-Compilers und die Einhaltung von Standards war.Attribute haben nicht zu einem schöneren C++-Code geführt, und vielleicht wird diese Syntax in einer zukünftigen Version eines echten C++-Standards verwendet.
Andere Tipps
Anhang D des Buches geht darauf ein.
Attributiertes ATL erfordert Compilererweiterungen, und die aufgetretenen Probleme umfassen:
- Debuggen des vom Attribut generierten Codes oder der Interaktion zwischen dem Attribut und Ihrem Code
- Keine Kontrolle über den generierten Code
- Fehler, insbesondere im Bereich der Verbindungspunkte