Share via


Managed Extensions for C++-Syntaxaktualisierung

Dieser Dokumentation für die Vorschau nur ist und in späteren Versionen geändert. Leere Themen wurden als Platzhalter eingefügt.]

Visual C++ 2005 bietet Visual C++-Funktionen für virtuelle Computer mit Garbage Collection, wie .NET Framework abzielen. Die für Visual C++ 2008 Unterstützung für Managed Extensions für C++ veraltet ist und vollständig in einer zukünftigen Version entfernt werden kann.

Code mit Managed Extensions for C++ kann weiterhin mit /clr:oldSyntax kompiliert werden. / CLR (common Language Runtime-Kompilierung) für Weitere Informationen Weitere Informationen zur Verwendung der neuen Syntax finden Sie unter, finden Sie unter:

In diesem Thema werden die Unterschiede zwischen Managed Extensions for C++ und der neuen Visual C++-Syntax aufgelistet.

Update von Managed Extensions for C++-Code

  • Entfernen Sie # using < mscorlib.dll >. (Diese Assembly ist jetzt standardmäßig verwiesen.)

  • Ersetzen Sie mit __gc classref class.

  • Ersetzen Sie mit __gc structref struct.

  • Ersetzen Sie mit __value classvalue class.

  • Ersetzen Sie mit __value structvalue struct.

  • Entfernen Sie Standardkonstruktoren aus Wertklassen. (Standardkonstruktoren für Werttypen sind in Managed Extensions for C++ zulässig, aber die Art der CLR verhindert diese aufgerufen wird zuverlässig, damit dieses Feature entfernt wurde.)

Weitere Informationen Verweis- und Werttypen finden Sie unter Klassen und Strukturen (verwaltet).

  • Ersetzen Sie mit __gc __interfaceinterface class.

Weitere Informationen zu dem Interface-Schlüsselwort finden Sie unter Schnittstellenklasse.

  • Ersetzen Sie mit __abstractabstract, und verschieben Sie nach dem Klassennamen. Weitere Informationen finden Sie unter Abstract (Visual C++).

  • Ersetzen Sie mit __sealedsealed, und verschieben Sie nach dem Klassennamen. Weitere Informationen finden Sie unter versiegelt.

  • Ersetzen Sie mit __property-Eigenschaft, kombinieren Sie die Get- und set-Methoden in eine einzelne Eigenschaftenblock und entfernen das nachfolgende Unterstreichung-Name Suffix aus diesen Accessoren. Bei einfachen Eigenschaften müssen die Accessoren nicht explizit definiert werden. Die Syntax für indizierte Eigenschaften erfordert Paare von Klammern nach dem Eigenschaftentyp. Weitere Informationen finden Sie unter, SO WIRD'S GEMACHT: Verwenden Sie einfache Eigenschaften und SO WIRD'S GEMACHT: Verwenden Sie indizierte Eigenschaften.

  • Ersetzen Sie mit __eventEreignis (Visual C++).

  • Ersetzen Sie mit __value enumEnum-Klasse.

  • Ersetzen Sie Zeiger auf Verweistypen folgen (mit definiertem __gc*) mit ^. Weitere Informationen finden Sie unter ^ (Handle zu Object on Managed Heap).

  • Ersetzen Sie Zeiger auf Werttypen, die möglicherweise im Garbage Collection Heap mit interior_ptr.

  • Ersetzen Sie Zeiger mit __pin Instanzen pin_ptrdeklariert, sofern ein gesamtes Objekt, fixiert wird ist in dem Fall verwenden interior_ptr, und verwenden Sie pin_ptr auf dem inneren Zeiger. Für Visual C++ 2005ist dieses Vorlage in der CLI-Namespace definiert.

  • Ersetzen Sie mit newgcnew.

  • Ersetzen Sie 0 oder Null durch nullptr ein, wenn an, dass ein Zeiger oder Handle Heap gesammelt Garbage kein Objekt anzeigt und Vergleiche mit Zeigern und Handles überprüft.

  • Aktualisieren Sie die Garbage Collection-Arrays, die mit __gc[]Arrays (Visual C++) Typ verwenden, deklariert. Für Visual C++ 2005ist dieses Vorlage in der CLI-Namespace definiert.

  • Entfernen Sie alle Instanzen von __box. Weitere Informationen finden Sie unter Implizites Boxing.

  • Entfernen Sie "S"Präfix von Zeichenfolgenliteralen (der Compiler bestimmt nun, ob eine Zeichenfolge literal ist basierend auf den Kontext, in dem es verwendet wird.)

  • Ersetzen Sie die explizite Deklaration und Verwendung überladener Operatoren in Managed Extensions for C++ (z. B. op_Additionop_Subtraction) mit der herkömmlichen C++-Syntax erforderlich. Weitere Informationen finden Sie unter Benutzerdefinierte Operatoren und Überladen von Operatoren.

  • Aktualisieren Sie Konvertierungsoperatoren (die op_Implicit und op_Explicit in Managed Extensions for C++-Syntax verwenden.) Weitere Informationen finden Sie unter Benutzerdefinierte Konvertierungen.

  • Ersetzen Sie mit __typeoftypeid.

  • Ersetzen Sie mit __try_castsafe_cast. Für Visual C++ 2005ist dieses Vorlage in der CLI-Namespace definiert.

  • Wenn Signieren Ihrer Assembly (auch bekannt als Ihrer Assembly einen starken Namen zuweisen) mit der CLR signieren Assembly Attribute wurden entfernen Sie diese Attribute aus dem Code, und stattdessen die Linkeroptionen Signieren Assembly verwenden. Weitere Informationen finden Sie unter Strong Name Assemblies (Assembly Signing).

Siehe auch

Konzepte

Gemischte (systemeigene und verwaltete) Assemblys

Sprachfeatures für die CLR Zielgruppenadressierung