Freigeben über


"Hello World" in Managed Extensions for C++

Anhand des folgenden Codes wird dargestellt, wie Hello World in Managed Extensions for C++ aussieht.

Auflistung 1. "Hello World" in Managed Extensions for C++ ("HelloVC.cpp")

#using <mscorlib.dll>

// Allow easy reference to the System namespace classes.
using namespace System;

// The global function, main, is the application's entry point.
void main() {
   // Write text to the console.
   Console::WriteLine(S"Hello World using Managed Extensions for C++!");
}

Obwohl das gesamte Programm nur aus wenigen Codezeilen besteht, muss auf verschiedene Dinge hingewiesen werden, angefangen bei der folgenden Zeile:

#using <mscorlib.dll>

In Managed Extensions for C++ hat die #using-Direktive Ähnlichkeit mit der #import-Direktive, die zum Einschließen von Informationen aus einer Typbibliothek verwendet wird. Diese unterscheiden sich von der #include-Direktive, die zum Einschließen von Quellcode verwendet wird und nicht für vordefinierte Bibliotheken vorgesehen ist. Darüber hinaus ist zum Importieren des Namespaces in das Programm (d. h., damit es einfacher ist, auf System-Objekte zu verweisen, ohne deren Pfad voll zu kennzeichnen) die folgende zusätzliche Anweisung erforderlich:

using namespace System;

Nun betrachten wir folgende Zeile:

void main() {

Obwohl der Einsprungpunkt main keine Befehlszeilenargumente annimmt, kann dies offensichtlich für bedeutende Programme erweitert werden. Der Einsprungpunkt gibt auch keine Daten zurück, obwohl es möglich ist, die Funktion dahingehend zu ändern, dass ein einzelner, numerischer 32-Bit-Wert zurückgegeben wird, der als Exit-Code verwendet wird.

Die nächste Zeile lautet wie folgt:

Console::WriteLine(S"Hello World using Managed Extensions for C++!");

Diese Zeile stellt den entscheidenden Inhalt des Programms dar und schreibt eine Zeichenfolge unter Verwendung des Console-Laufzeittyps. Der Typ Console kann von der Read-Methode, der ReadLine-Methode, der Write-Methode und der WriteLine-Methode sowohl für die Eingabe als auch für die Ausgabe einer beliebigen Zeichenfolge oder eines beliebigen numerischen Wertes verwendet werden. Wie bereits erwähnt, ist in Managed Extensions for C++ in Console::WriteLine der doppelte Doppelpunkt erforderlich, um den Gültigkeitsbereich anzuzeigen. Der doppelte Doppelpunkt trennt einen Namespace von einem Klassennamen und einen Klassennamen von einer statischen Methode. Darüber hinaus weist das S vor der Zeichenfolge den Compiler an, daraus eine System::String* zu machen, wodurch in verwaltetem Code eine bessere Leistung als mit C++-Zeichenfolgenliteralen erzielt wird.

Die Datei Build.bat enthält alles, was zum Erstellen dieses Programms erforderlich ist, d. h. die folgende Zeile:

cl.exe /Zi /clr HelloVC.cpp

Zunächst betrachten wir den Schalter /clr, der den Compiler anweist, verwalteten Code zu erstellen, wie von der Laufzeit erfordert. Durch Ausführen der Datei Build.bat wird folgende Ausgabe erzeugt:

C:\...\HelloWorld\vc>build
C:\...\HelloWorld\vc> cl.exe /Zi /clr HelloVC.cpp
Microsoft (R) C/C++ Optimizing Compiler...
Copyright (C) Microsoft Corporation 1984-2001. All rights reserved.

HelloVC.cpp
Microsoft (R) Incremental Linker ...
Copyright (C) 1992-2001 Microsoft Corporation.  All rights reserved.

/out:HelloVC.exe
/debug
HelloVC.obj 

Durch Ausführen der so erhaltenen ausführbaren Datei wird Folgendes ausgegeben:

C:\...\HelloWorld\vc>hellovc
Hello World using Managed Extensions for C++!

Siehe auch

"Hello World" in Visual C# | "Hello World" in Visual Basic | Schreiben einfacher .NET-Komponenten | Clients für die einfachen Komponenten | Zusammenfassung des Lernprogramms für Entwicklung | Anhang A: Tools zum Durchsuchen von Namespaces