Visual C++

Visual C++ (también conocido como Mvs}C, Microsoft Visual C++) es un entorno de desarrollo integrado (IDE) para lenguajes de programación C, C++ y C++/CLI.
Visual C++ engloba el desarrollo de aplicaciones hechas en C, C++ y C++/CLI en el entorno Windows. Visual C++ incluye además las bibliotecas de Windows (WinApi), las bibliotecas MFC y el entorno de desarrollo para .NET Framework. Visual C++ cuenta con su propio compilador (de igual nombre) y otras herramientas como IntelliSense, TeamFoundation Server, Debug,... Además provee de bibliotecas propias de cada versión del sistema operativo y sockets. Como otros compiladores, se le pueden añadir nuevas bibliotecas como DirectX, wxWidgets o SDL.
Cuenta con una versión Express, llamada Microsoft Visual C++ Express Edition, la cual es gratuita y se puede descargar desde el sitio de Microsoft.
El lenguaje de programación utilizado por esta herramienta, de igual nombre, está basado en C++ y es compatible en la mayor parte de su código con este lenguaje, a la vez que su sintaxis es exactamente igual. En algunas ocasiones esta incompatibilidad impide que otros compiladores, sobre todo en otros sistemas operativos, funcionen bien con código desarrollado en este lenguaje.
Una de las nuevas implementaciones es que el llamado código administrado (managed code) hace uso de una de las mejores herramientas dentro de .NET, el recolector de basura (garbage collector).
Cómo declarar una clase gestionada por el recolector de basura Visual Studio 2005:
ref class MiClase
{
   // Código
}
__gc class MiClase
{
   // Código
}
La palabra reservada ref (ó __gc) le dice al compilador que esa clase será manejada por el recolector de basura, aunque, y a diferencia de otros lenguajes de .NET como C#, aún puede seguir llamando al destructor con delete.
Ahora veamos un ejemplo del programa HolaMundo con Visual C++ en C++/CLI.
using namespace System;
ref class MiClase
{
    public void HolaMundo()
    {
        Console::WriteLine("Hola, mundo");
    }
};
int main()
{
    MiClase^ objeto = gcnew MiClase();
    objeto->HolaMundo();
    return 0;
}
Ahora veamos un ejemplo en ANSI C.
#include <stdio.h>
 
int main()
{
 printf("Hola, mundo");
}
Y un ejemplo en C++
#include <iostream>
 
using namespace std;
int main()
{
 cout<<"Hola, mundo"<<endl;
}
Las diferencias son pocas; en cuanto a sintaxis, el símbolo ^ indica que se está creando un puntero. Se hace de esta forma porque los punteros nativos de C++ son difíciles de seguir por el recolector de basura, así que se debe manejar de manera diferente. Para acceder a los métodos y miembros de la clase se usa -> cuando se tiene un puntero, al igual que en C++ nativo.

La palabra reservada gcnew crea el objeto devolviendo un puntero hacia este; gcnew se debe de usar para instar una clase manejada por el recolector de basura, o sea que ha sido declarada ref class. Si la clase no es manejada class se usa new y * para crear un puntero, al igual que en C++.

No hay comentarios:

Publicar un comentario