Compartir a través de


Hola a todos en Extensiones administradas de C++

En el siguiente código se muestra cómo aparece Hola a todos en Extensiones administradas de C++.

Lista 1. Hola a todos en Extensiones administradas de 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++!");
}

Aunque el programa completo sólo son unas cuantas líneas de código, caben destacar varios puntos, comenzando por la siguiente línea:

#using <mscorlib.dll>

En Extensiones administradas de C++, la directiva #using es similar a la directiva #import, que se utiliza para incorporar información de una biblioteca de tipos. Observe que éstas se diferencian de la directiva #include, que sirve para incorporar código fuente en lugar de bibliotecas previamente generadas. Asimismo, para importar el espacio de nombres al programa (en otras palabras, para poder hacer fácilmente referencia a los objetos System sin tener que utilizar el nombre completo de sus rutas de acceso), se requiere la siguiente instrucción adicional:

using namespace System;

A continuación, considere la línea siguiente:

void main() {

Si bien el punto de entrada main no utiliza ningún argumento de línea de comandos, esto se podrá mejorar naturalmente para programas no triviales. El punto de entrada tampoco devuelve nada, aunque es posible modificar la función para devolver un solo valor numérico de 32 bits que se va a utilizar como código de salida.

La siguiente línea es ésta:

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

Siendo el elemento básico del programa, esta línea escribe una cadena mediante el tipo Console del motor de tiempo de ejecución. El tipo Console lo pueden utilizar los métodos Read, ReadLine, Write y WriteLine para la entrada y salida de cualquier cadena o valor numérico. Tal y como se ha mencionado anteriormente, el signo doble de dos puntos en Console::WriteLine se requiere en Extensiones administradas de C++ para indicar el ámbito. El signo doble de dos puntos separa un espacio de nombres de un nombre de clase así como un nombre de clase de un método estático. Finalmente, la S delante de la cadena indica al compilador que la convierta en System::String*, que tiene mejor resultado en código administrado que los literales de cadena de C++.

El archivo Build.bat contiene la siguiente línea, que es lo único que hace falta para generar este programa:

cl.exe /Zi /clr HelloVC.cpp

El primer elemento de interés es el modificador /clr, que indica al compilador que cree código administrado, tal y como requiere el motor de tiempo de ejecución. Tras ejecutar Build.bat, el resultado es éste:

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 

Finalmente, al ejecutar el archivo ejecutable resultante, el resultado es éste:

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

Vea también

Hola a todos en Visual C# | Hola a todos en Visual Basic | Escribir componentes simples de .NET | Clientes para los componentes simples | Resumen del tutorial sobre la programación | Apéndice A: Herramientas para explorar espacios de nombres