Hello World dans les extensions managées pour C++
Le code suivant illustre l'aspect de Hello World dans les extensions managées pour C++.
Listing 1. Hello World dans les extensions managées pour 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++!");
}
Bien que tout le programme ne représente que quelques lignes de code, il est important de noter plusieurs choses, en commençant par la ligne suivante :
#using <mscorlib.dll>
Dans les extensions managées pour C++, la directive #using
est similaire à la directive #import
, utilisée pour incorporer des informations à partir d'une bibliothèque de types. Notez qu'elles diffèrent de la directive #include
, qui sert à incorporer du code source plutôt que des bibliothèques prédéfinies. De plus, pour importer l'espace de noms dans le programme (en d'autres termes, pour le rendre à même de référencer des objets System sans avoir à qualifier entièrement leurs chemins d'accès) l'instruction supplémentaire suivante est requise :
using namespace System;
Prenons ensuite la ligne suivante :
void main() {
Bien que le point d'entrée main ne prend aucun argument de ligne de commande, cela peut tout à fait être amélioré pour des programmes importants. Le point d'entrée ne retourne rien, bien qu'il soit possible de modifier la fonction pour retourner une seule valeur numérique 32 bits à utiliser en tant que code de sortie.
Voici la ligne suivante :
Console::WriteLine(S"Hello World using Managed Extensions for C++!");
Véritable cœur du programme, cette ligne écrit une chaîne à l'aide du type de Console d'exécution. Le type de Console peut être utilisé par les méthodes Read, ReadLine, Write et WriteLine pour l'entrée et la sortie de n'importe quelle chaîne ou valeur numérique. Comme indiqué plus haut, les deux-points doubles dans Console::WriteLine sont requis dans les extensions managées pour C++ pour indiquer la portée. Les deux-points doubles séparent un espace de noms d'un nom de classe ainsi qu'un nom de classe d'une méthode static. Enfin, le S devant la chaîne indique au compilateur d'en faire une chaîne System::String*
qui offre de meilleures performances dans du code managé que les littéraux de chaîne C++.
Le fichier Build.bat contient la ligne suivante, qui représente tout ce qui est nécessaire pour créer ce programme :
cl.exe /Zi /clr HelloVC.cpp
Le premier élément à noter est le commutateur /clr, qui indique au compilateur de créer du code managé, comme l'exige le runtime. L'exécution du fichier Build.bat génère la sortie suivante :
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
Enfin, l'exécution du fichier exécutable obtenu génère la sortie suivante :
C:\...\HelloWorld\vc>hellovc
Hello World using Managed Extensions for C++!
Voir aussi
Hello World dans Visual C# | Hello World dans Visual Basic | Écriture de composants .NET simples | Clients pour les composants simples | Résumé du didacticiel de développement | Annexe A : Outils pour l'exploration des espaces de noms