Documentos de Académico
Documentos de Profesional
Documentos de Cultura
BELLAVISTA - CALLAO
1
ÍNDICE
1. MARCO TEÓRICO 3
¿Qué es Visual C++, lenguaje de programación 3
incluído en el Microsoft Visual Studio?
1.1 Versiones del Microsoft Virtual Studio 5
2. HISTORIA 6
2.1 VISUAL STUDIO 6.0 6
2.2 VISUAL STUDIO .NET (2002) 8
2.3 VISUAL STUDIO .NET 2003 10
2.4 VISUAL STUDIO 2005 11
2.5 VISUAL STUDIO 2008 14
2.6 VISUAL STUDIO 2010 16
2.7 VISUAL STUDIO 2012 17
2.8 VISUAL STUDIO 2013 17
2.9 VISUAL STUDIO 2017 19
2.10 VISUAL STUDIO 2019 20
3. APLICACIONES 21
4. CONCLUSIONES 32
5. EJEMPLOS 33
6. BIBLIOGRAFÍA 38
2
1. MARCO TEÓRICO
Para definir qué es el Visual C++ debemos partir de la definición del Microsoft
Visual Studio. Este es un entorno de desarrollo integrado (IDE, por sus siglas
en inglés) para sistemas operativos Windows. Soporta varios lenguajes de
programación tales como Visual C++, Visual C#, Visual J#, ASP.NET y Visual
Basic .NET, aunque actualmente se han desarrollado las extensiones
necesarias para muchos otros.
Visual Studio permite a los desarrolladores crear aplicaciones, sitios y
aplicaciones web, así como servicios web en cualquier entorno que soporte la
plataforma .NET (a partir de la versión net 2002). Así se pueden crear
aplicaciones que se intercomuniquen entre estaciones de trabajo, páginas
web y dispositivos móviles.
3
Visual C++ es un entorno integrado de desarrollo que permite la
programación orientada a objetos (POO) conjuntamente con el sistema de
desarrollo SDK (también denominado API) de Windows. Al ser un entorno
integrado Visual C++ incluye, entre otras, las siguientes herramientas de
desarrollo:
Editor de texto
Compilador/Enlazador
Depurador
Visor de datos y dependencias (Browser)
Pero si desde el punto de vista del usuario Windows es un sistema amigable,
desde el punto de vista del desarrollador observaremos todo lo contrario. El
SDK de Windows no es más que un complejo conjunto de funciones que
añade además numerosas definiciones de tipos de datos nuevos para
cualquier programador de C/C++ para DOS. Para solucionar este problema,
Visual C++ incluye la librería de clases MFC (Microsoft Foundation Classes)
que permite crear y gestionar de manera intuitiva componentes típicos de
Windows. Esto es, la MFC es una implementación que utiliza el API
encapsulando todas las estructuras y llamadas a funciones en objetos fáciles
de utilizar. Basándose en la potencia de la MFC, Visual C++ se convierte en un
generador de programas C++ para Windows.
El objetivo del presente curso es conocer el modelo de programación para
Windows basado en la librería de clases MFC. En este documento se
destacarán ideas, conceptos y tratamientos generales, en ningún momento
pretende ser un manual completo de programación con MFC.
Como todos sabemos, "C" es un lenguaje de alto nivel, basado en funciones,
que permite desarrollos estructurados. Entre otras muchas características
contempla la definición de estructuras de datos, recursividad o indirecciones
a datos o código (punteros).
"C ++", por su parte, es un superconjunto de "C", al que recubre con una capa
de soporte a la POO. Permite por tanto la definición, creación y manipulación
de objetos.
4
1.1 VERSIONES DEL MICROSOFT VISUAL STUDIO:
Microsoft Visual Studio 6
Microsoft Visual Studio .NET (2002)
Microsoft Visual Studio .NET 2003
Microsoft Visual Studio 2005
Microsoft Visual Studio 2008
Microsoft Visual Studio 2010
6
Java, lo que lo hacía incompatible con la versión de Sun Microsystems.
Esto acarreó problemas legales a Microsoft, y
se llegó a un acuerdo en el que Microsoft
dejaba de comercializar herramientas de
programación que utilizaran la máquina
virtual de Java.
Aunque el objetivo a largo plazo de Microsoft
era unificar todas las herramientas en un
único entorno, esta versión en realidad
añadía un entorno más a Visual Studio 5.0:
Visual J++ y Visual Interdev se separaban del
entorno de Visual C++, al tiempo que Visual
FoxPro y Visual Basic seguían manteniendo su
entorno específico.
7
2.2 VISUAL STUDIO .NET (2002)
En esta versión se produjo un cambio sustancial, puesto que supuso la
introducción de la plataforma .NET de microsoft. .NET . Ésta es una
plataforma de ejecución intermedia multilenguaje, de forma que los
programas desarrollados en .NET no se compilan en lenguaje máquina,
sino en un lenguaje intermedio (CIL - Common Intermediate Language)
denominado Microsoft Intermediate Language (MSIL). En una aplicación
MSIL, el código no se convierte a lenguaje máquina hasta que ésta se
ejecuta, de manera que el código puede ser independiente de plataforma
(al menos de las soportadas actualmente por .NET). Las plataformas han
de tener una implementación de Infraestructura de Lenguaje Común (CLI)
para poder ejecutar programas MSIL. Actualmente se pueden ejecutar
programas MSIL en Linux y Mac OS X usando implementaciones de .NET
que no son de Microsoft, tales como Mono y DotGNU
Visual Studio .NET 2002 supuso también la introducción del lenguaje C#,
un lenguaje nuevo diseñado específicamente para la plataforma .NET,
basado en C++ y Java. Se presentó también el lenguaje J# - sucesor de J++
- el cual, en lugar de ejecutarse en una máquina virtual de Java, se
ejecuta únicamente en el framework .NET. El lenguaje Visual Basic fue
remodelado completamente y evolucionó para adaptarse a las nuevas
características de la plataforma .NET, haciéndolo mucho más versátil y
dotándolo con muchas características de las que carecía. Algo similar se
llevó a cabo con C++, añadiendo extensiones al lenguaje llamadas
Managed Extensions for C++ con el fin de que los programadores
pudieran crear programas en .NET. Por otra parte, Visual FoxPro pasa a
comercializarse por separado.
Todos los lenguajes se unifican en un único entorno. La interfaz se mejora
notablemente en esta versión, siendo más limpia y personalizable.
Visual Studio .NET puede usarse para crear programas basados en
Windows (usando Windows Forms en vez de COM), aplicaciones y sitios
web (ASP.NET y servicios web), y dispositivos móviles (usando el .NET
Compact Framework).
8
Esta versión requiere un sistema operativo basado en NT. La versión interna
de Visual Studio .NET es la 7.0.
9
2.3 VISUAL STUDIO .NET 2003
Visual Studio .NET 2003 supone una actualización menor de Visual
Studio .NET. Se actualiza el .NET Framework a la versión 1.1. También
se añade soporte con el fin de escribir aplicaciones para determinados
dispositivos móviles, ya sea con ASP.NET o con el .NET Compact
Framework. Además, el compilador de Visual C++ se mejora para
cumplir con más estándares, el Visual C++ Toolkit 2003.
Visual Studio 2003 se lanza en 4 ediciones: Academic, Professional,
Enterprise Developer, y Enterprise Architect. La edición Enterprise
Architect incluía una implentación de la tecnología de modelado
Microsoft Visio, que se centraba en la creación de representaciones
visuales de la arquitectura de la aplicación basadas en UML. También
se introdujo "Enterprise Templates", para ayudar a grandes equipos de
trabajo a estandarizar estilos de programación e impulsar políticas de
uso de componentes y asignación de propiedades.
Microsoft lanzó el Service Pack 1 para Visual Studio 2003 el 13 de
septiembre de 2006.
La versión interna de Visual Studio .NET 2003 es la 7.1 aunque el
formato del archivo es 8.0.
10
2.4 VISUAL STUDIO 2005
Visual Studio 2005 se empezó a comercializar a través de Internet a partir del
4 de octubre de 2005 y llegó a los comercios a finales del mes de Octubre en
inglés. En castellano no salió hasta el 4 de febrero de 2006. Microsoft eliminó
.NET, pero eso no indica que se alejara de la plataforma .NET, de la cual se
incluyó la versión 2.0.
11
Se incluye un diseñador de implantación, que permite que el diseño de
la aplicación sea validado antes de su implantación. También se incluye
un entorno para publicación web y pruebas de carga para comprobar
el rendimiento de los programas bajo varias condiciones de carga.
Visual Studio 2005 también añade soporte de 64-bit. Aunque el
entorno de desarrollo sigue siendo una aplicación de 32 bits Visual C++
2005 soporta compilación para x86-64 (AMD64 e Intel 64) e IA-64
(Itanium). El SDK incluye compiladores de 64 bits así como versiones de
64 bits de las librerías.
12
La versión interna de Visual Studio 2005 es la 8.0, mientras que el formato
del archivo es la 9.0.
13
2.5 VISUAL STUDIO 2008
Visual Studio 2008 fue publicado (RTM) el 17 de noviembre de 2007 en
inglés, mientras que la versión en castellano no fue publicada hasta el
2 de febrero de 2008.
El nuevo framework (.Net 3.5) está diseñado para aprovechar las
ventajas que ofrece el nuevo sistema operativo "Windows Vista" a
través de sus subsistemas "Windows Communication Foundation"
(WCF) y "Windows Presentation Foundation" (WPF).El primero tiene
como objetivo la construcción de aplicaciones orientadas a servicios
mientras que el último apunta a la creación de interfaces de usuario
más dinámicas que las conocidas hasta el momento.
A las mejoras de desempeño, escalabilidad y seguridad con respecto a
la versión anterior, se agregan entre otras, las siguientes novedades.
Con Visual Studio Tools for Office (VSTO) integrado con Visual Studio
2008 es posible desarrollar rápidamente aplicaciones de alta calidad
basadas en la interfaz de usuario (UI) de Office que personalicen la
experiencia del usuario y mejoren su productividad en el uso de Word,
Excel, PowerPoint, Outlook, Visio, InfoPath y Project. Una completa
compatibilidad para implementación con ClickOnce garantiza el
entorno ideal para una fácil instalación y mantenimiento de las
soluciones Office.
14
Visual Studio 2008 permite incorporar
características del nuevo Windows
Presentation Foundation sin dificultad
tanto en los formularios de Windows
existentes como en los nuevos. Ahora es
posible actualizar el estilo visual de las
aplicaciones al de Windows Vista debido
a las mejoras en Microsoft Foundation
Class Library (MFC) y Visual C++. Visual
Studio 2008 permite mejorar la
interoperabilidad entre código nativo y código manejado por .NET.
Esta integración más profunda simplificará el trabajo de diseño y
codificación.
15
2.6 VISUAL STUDIO 2010
Visual Studio 2010 es la versión más reciente de
esta herramienta, acompañada por .NET
Framework 4.0. La fecha prevista para el
lanzamiento de la versión final ha sido el 12 de
abril de 2010.
Hasta ahora, uno de los mayores logros de la
versión 2010 de Visual Studio ha sido el de incluir
las herramientas para desarrollo de aplicaciones
para Windows 7, tales como herramientas para el
desarrollo de la Taskbar (System Windows Shell) y
la Ribbon Preview para WPF.
16
2.7 VISUAL STUDIO 2012
.NET Framework 2.0
.NET Framework 3.0
.NET Framework 3.5
.NET Framework 4.0
.NET Framework 4.5
.NER LEIFRETH 5.0
17
Permite trabajar con los frameworks:
18
2.9 VISUAL STUDIO 2017
Permite trabajar con los frameworks:
19
2.10 VISUAL STUDIO 2019
20
Versiones de Windows Server soportadas
Windows Server 2019
Windows Server version 1803
Windows Server version 1709
Windows Server 2016
Windows Server 2012
Windows Server 2012 R2
Windows Server 2008 R2 SP1
3. APLICACIONES
21
Una aplicación de escritorio es distinta de una aplicación plataforma Universal de
Windows (UWP), que puede ejecutar en equipos que ejecutan Windows 10 y también en
xBox, Windows Phone, Surface Hub y otros dispositivos.
Puente de escritorio
En Visual Studio 2017 versión 15.4 y versiones posterior, puede crear un proyecto de
paquete de aplicación de Windows para simplificar en gran medida el trabajo de
empaquetado de la aplicación de escritorio existente. Se aplican algunas restricciones con
respecto a qué registro se llama o usa las API de la aplicación de escritorio, pero en
muchos casos puede crear rutas de acceso del código alternativa para lograr una
funcionalidad similar mientras se ejecuta en un paquete de aplicación.
Un Win32 aplicación es una aplicación de escritorio de C++ que pueden hacer uso de
nativo de Windows las API de C de Windows o COM APIs CRT y la API de biblioteca
estándar y 3ª bibliotecas de terceros. Una aplicación de Win32 que se ejecuta en una
ventana requiere que el desarrollador trabaje explícitamente con mensajes de Windows
dentro de una función de procedimiento de Windows. A pesar del nombre, una aplicación
Win32 puede compilarse como una (x86) 32 bits o 64 bits (x64) binario. En el IDE de Visual
Studio, los términos x86 y Win32 son sinónimos.
Modelo de objetos componentes (COM) es una especificación que permite que los
programas escritos en lenguajes diferentes se comuniquen entre sí. Muchos componentes
de Windows se implementan como objetos COM y siguen las reglas COM estándar para
crear objetos, detectar la interfaz y destruir objetos. Usar objetos COM desde aplicaciones
de escritorio de C++ es relativamente sencillo, pero escribir su propio objeto COM es más
avanzado. En Active Template Library (ATL) se proporcionan macros y funciones auxiliares
que simplifican el desarrollo de COM.
Microsoft
Foundation Classes para crear la interfaz de usuario. También puede usar una aplicación
MFC componentes COM, así como las API de biblioteca estándar y CRT. MFC proporciona
un contenedor delgado de C++ orientado a través de las API de Windows y el bucle de
mensajes de ventana. MFC es la opción predeterminada para las aplicaciones,
especialmente las aplicaciones de tipo empresarial, que tienen una gran cantidad de
controles de interfaz de usuario o controles de usuario personalizados. MFC proporciona
clases auxiliares útiles para la administración de ventanas, serialización, manipulación de
22
texto, impresión y elementos de la interfaz de usuario moderna, como la cinta de
opciones. Para que sea eficaz con MFC debe estar familiarizado con Win32.
23
mensaje asociado. En C++ un método se corresponde con la definición de
la función miembro del objeto. La estructura más interna de un objeto
está oculta, de tal manera que la única conexión con el exterior son los
mensajes
Clases. Una clase es la definición de un tipo de objetos. De esta manera,
una clase "Empleado" representaría todos los empleados de una
empresa, mientras que un objeto de esa clase (también denominado
instancia) representaría a uno de esos empleados en particular.
Las principales características de la POO son: abstracción,
encapsulamiento, herencia y polimorfismo:
Abstracción. Es el mecanismo de diseño en la POO. Nos permite extraer
de un conjunto de entidades datos y comportamientos comunes para
almacenarlos en clases.
Encapsulamiento. Mediante esta técnica conseguiremos que cada clase
sea una caja negra, de tal manera que los objetos de esa clase se puedan
manipular como unidades básicas. Los detalles de la implementación se
encuentran dentro de la clase, mientras que desde el exterior, un objeto
será simplemente una entidad que responde a una serie de mensajes
públicos (también denominados interfaz de la clase).
Herencia. Es el mecanismo que nos permite crear clases derivadas
(especialización) a partir de clases bases (generalización). Es decir,
podríamos tener la clase "Empleado" (clase base) y la clase "Vendedor"
derivando de la anterior. Una librería de clases (como la MFC) no es más
que un conjunto de definiciones de clases interconectadas por múltiples
relaciones de herencia.
Polimorfismo. Esta característica nos permite disponer de múltiples
implementaciones de un mismo método de clase, dependiendo de la
clase en la que se realice. Es decir, podemos acceder a una variedad de
métodos distintos (con el mismo nombre) mediante el mismo mecanismo
de acceso. En C++ el polimorfismo se consigue mediante la definición de
clases derivadas, funciones virtuales y el uso de punteros a objetos.
24
Otros dos conceptos muy importantes en la POO son relativos a la
creación y destrucción de objetos. En lenguajes estructurados
convencionales, cuando se define una variable se le reserva espacio en
memoria y, si no se inicializa expresamente, se hace por defecto (por
ejemplo, en C una variable global siempre se inicializa a 0, pero una
automática no, por lo que si no se inicializa expresamente su contenido
inicial será basura); por otra parte, cuando se destruye una variable (por
que se abandona el ámbito de su definición - scope -) se libera la
memoria que estaba ocupando. Si ahora hacemos el paralelismo obligado
entre variables y objetos para los lenguajes POO nos daremos cuenta de
que deben existir procedimientos especiales de construcción y
destrucción de objetos. En concreto, cada clase tiene dos funciones
miembro especiales denominadas constructor y destructor.
25
3.1.1 MODELO DE PROGRAMACIÓN DE WINDOWS:
Pero por parte de las aplicaciones, este hecho supone que han de
cooperar en la compartición de esos recursos. Las aplicaciones
Windows se limitan a "esperar" mensajes procedentes del sistema,
procesarlos y volver al estado de espera. Este modelo de programación
se conoce como "orientado al evento".
28
3.3 GENERADOR DE APLICACIONES:
Ya sabemos que Visual C++, apoyado en la potencia de la MFC, es capaz de
convertirse en un generador de aplicaciones. Para ello dispone de dos
herramientas integradas complementarias:
AppWizard, que es el generador de aplicaciones propiamente dicho. Con él
podremos generar esqueletos de programas para Windows basados en la
MFC.
ClassWizard, herramienta de mantenimiento de los programas generados
con la anterior. Permite añadir o eliminar clases, modificar los
comportamientos de las mismas, etc.
Pero el código generado mediante este método presenta una complejidad
añadida a la natural de cualquier programa; junto con el código C/C++ y el de
la MFC aparecen líneas (generalmente entre comentarios) que son
totalmente necesarias para el funcionamiento de las dos herramientas
anteriores, modificar cualquiera de esas líneas de código dará muchos
problemas a la hora de utilizar ClassWizard para modificarlo. De todas
maneras, este "defecto" es bastante popular entre los usuarios de cualquier
generador de código, para cualquier lenguaje.
El formato general de los proyectos generados con estas herramientas suele
tener las siguientes características:
29
3.4 CONSTRUCCION DE UNA APLICACIÓN BÁSICA:
Seguiremos los siguientes pasos:
Crear un nuevo proyecto. Desde el menú "Fichero", en la opción
"Nuevo".
Seleccionar objetivo del proyecto. Seleccionaremos "aplicación basada
en MFC"
Nombrar el proyecto. Visual C++ organiza los proyectos de manera que
crea un subdirectorio nuevo con el nombre de cada proyecto. Aunque
esta "regla" siempre puede modificarse, puede ser una buena forma
de control de proyectos.
30
de la que derivan. Los nombres generados por AppWizard suelen ser
bastantes significativos.
A partir de este momento da comienzo la generación del código definido
antes. Como se habrá observado, el nombre por defecto de las clases
generadas tiene mucho que ver con el nombre que le hayamos dado al
proyecto. De esta manera, si hubiésemos llamado "curso1" al proyecto
tendríamos la siguiente situación:
31
4. CONCLUSIONES
32
5. EJEMPLO
EJERCICIO 1
33
34
35
36
37
6. BIBLIOGRAFÍA
https://www.softzone.es/2016/05/28/muchas-aplicaciones-
microsoft-visual-c-redistributable-instaladas-windows/
https://social.technet.microsoft.com/Forums/es-ES/49bf8da9-
c05b-486e-af4d-200350875737/para-que-me-sirve-el-microsoft-
visual-c-y-que-beneficios-trae-a-mi-pc?forum=wcxpes
https://docs.microsoft.com/es-es/cpp/windows/desktop-
applications-visual-cpp?view=vs-2019
https://www.ecured.cu/Visual_C%2B%2B
38