Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nel codice riportato di seguito si illustra Hello World scritto per le estensioni gestite per C++.
Listato 1. Hello World nelle estensioni gestite per 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++!");
}
Sebbene l'intero programma si esaurisca in poche linee di codice si possono notare numerose cose interessanti. Una prima considerazione riguarda la seguente riga:
#using <mscorlib.dll>
Nelle estensioni gestite per C++ la direttiva #using è simile alla direttiva #import utilizzata per incorporare informazioni da una libreria dei tipi. Queste direttive sono diverse dalla direttiva #include poiché essa consente di incorporare codice sorgente e non librerie esistenti. Per importare lo spazio dei nomi nel programma, ovvero per fare riferimento a oggetti System senza dover specificare il percorso completo degli oggetti, è necessario inoltre aggiungere l'istruzione seguente:
using namespace System;
Si prenderà ora in considerazione la seguente riga:
void main() {
Il punto di ingresso main non accetta argomenti della riga di comando ma può ovviamente essere ampliato in caso di programmi più complessi. Il punto di ingresso, inoltre, non restituisce nulla, sebbene sia possibile modificare la funzione in modo che venga restituito un valore numerico a 32 bit da utilizzare come codice di uscita.
La riga che segue è:
Console::WriteLine(S"Hello World using Managed Extensions for C++!");
Questa riga rappresenta la parte saliente del programma e consente di scrivere una stringa utilizzando il tipo Console di runtime. Questo tipo può essere utilizzato dai metodi Read, ReadLine, Write e WriteLine sia per l'input che per l'output di qualsiasi stringa o valore numerico. Come accennato in precedenza, il doppio segno di due punti (::) in Console::WriteLine è indispensabile per indicare l'area di validità nelle estensioni gestite per C++. Questo segno separa uno spazio dei nomi dal nome di una classe nonché il nome di una classe da un metodo Static. Infine, la S davanti alla stringa indica che la stringa deve essere compilata come una stringa System::String*, che ha prestazioni migliori in codice gestito rispetto alle espressioni letterali di stringa del linguaggio C++.
Il file Build.bat contiene la riga riportata di seguito, che rappresenta la stringa necessaria per la generazione del programma:
cl.exe /Zi /clr HelloVC.cpp
Il primo elemento degno di nota è l'opzione /clr che indica che dovrà essere creato codice gestito, come richiesto dal runtime. All'avvio del file Build.bat viene generato il seguente output:
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
Per finire, quando si esegue il file eseguibile risultante viene generato il seguente output:
C:\...\HelloWorld\vc>hellovc
Hello World using Managed Extensions for C++!
Vedere anche
Hello World in Visual C# | Hello World in Visual Basic | Scrittura di componenti .NET semplici | Client per i componenti semplici | Riepilogo dell'esercitazione di sviluppo | Appendice A: strumenti per l'esplorazione degli spazi dei nomi