Está en la página 1de 38

“AÑO DE LA LUCHA CONTRA LA CORRUPCIÓN Y LA IMPUNIDAD”

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA PROFESIONAL DE INGENIERÍA ELÉCTRICA

CURSO: Software de Programación y Simulación


PROFESOR: Apesteguia Infantes Juan Antonio
GRUPO N°: 7

FECHA DE ENTREGA: 28 de Junio de 2019


ALUMNOS:
MACHACA QUISPE FRANCO PABLO 1713120125
ROJAS CEVALLOS SCOTT UZIEL 1423115133
YAURICAZA BARRIOS JOHAN 1713120569
BENDEZU ALVARADO DANIEL NELSON 1613125509

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

Aplicaciones de escritorio (Visual C++) 22

3.1 CONCEPTOS PRELIMINARES 23


3.1.1 MODELO DE PROGRAMACIÓN DE WINDOWS 26

3.2 ENTORNO DEL DESARROLLO 27


3.3 GENERADOR DE APLICACIONES 29
3.4 CONSTRUCCION DE UNA APLICACIÓN BASICA 30

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.

¿Qué es Visual C++, lenguaje de programación incluído en el


Microsoft Visual Studio?

Visual C++. También conocido como MSVC, Microsoft Visual C++, es un


entorno de desarrollo integrado (IDE) para lenguajes de programación C, C++
y C++/CLI. Esta especialmente diseñado para el desarrollo y depuración de
código escrito para las API's de Microsoft Windows, DirectX y la tecnología
Microsoft .NET Framework
Como sabemos, Windows es el entorno más popular de interfaz gráfico de
usuario (GUI). Desde este punto de vista, Windows es un entorno multitarea
basado en ventanas, que representan programas, y que permite ejecución
concurrente.
Para desarrollar programas, Windows provee una librería de rutinas y
funciones (SDK - Kit de desarrollo de software) que permiten gestionar
componentes como menús, diálogos, ventanas, etc.

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

A partir de la versión 2005 Microsoft ofrece gratuitamente las Express


Editions. Estas son varias ediciones básicas separadas por lenguajes de
programación o plataforma enfocadas para novatos y entusiastas. Estas
ediciones son iguales al entorno de desarrollo comercial pero sin
características avanzadas. Las ediciones que hay son las siguientes:

 Visual Basic Express Edition


 Visual C# Express Edition
 Visual C++ Express Edition
 Visual J# Express Edition (Desapareció en Visual Studio 2008)
 Visual Web Developer Express Edition (para programar en ASP.NET)
 Visual F# (Apareció en Visual Studio 2010, es parecido al J#)*

Adicionalmente, Microsoft ha puesto gratuitamente a disposición de todo


el mundo una versión reducida de MS SQL Server llamada SQL Server
Express Edition cuyas principales limitaciones son que no soporta bases de
datos superiores a 4 GB de tamaño, únicamente utiliza un procesador y un
Gb de RAM, y no cuenta con el Agente de SQL Server.
En el pasado se incluyeron los siguientes productos:
 Visual InterDev
 Visual J++
 Visual FoxPro
 Visual SourceSafe
5
2. HISTORIA:
2.1 VISUAL STUDIO 6.0
Se lanzó en 1998 y fue la última versión en ejecutarse en la plataforma
Win9x. Los números de versi ón de todas las partes
constituyentes pasaron a 6.0, incluyendo Visual J++ y Visual InterDev que
se encontraban en las versiones 1.1 y 1.0 respectivamente. Esta versión
fue la base para el sistema de desarrollo de Microsoft para los siguientes
4 años, en los que Microsoft migró su estrategia de desarrollo al .NET
Framework.
Visual Studio 6.0 fue la última versión en que Visual Basic se incluía de la
forma en que se conocía hasta entonces; versiones posteriores
incorporarían una versión muy diferente del lenguaje con muchas
mejoras, fruto de la plataforma .NET. También supuso la última versión
en incluir Visual J++, que proporcionaba extensiones de la plataforma

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.

La actualización más importante que recibieron los lenguajes de


programación fue la inclusión de tipos genéricos, similares en muchos
aspectos a las plantillas de C#. Con esto se consigue encontrar muchos más
errores en la compilación en vez de en tiempo de ejecución, incitando a usar
comprobaciones estrictas en áreas donde antes no era posible. C++ tiene una
actualización similar con la adición de C++/CLI como sustituto de C#
manejado

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.

Visual Studio 2005 tiene varias ediciones radicalmente distintas entre


sí: Express, Standard, Professional, Tools for Office, y 5 ediciones Visual
Studio Team System. Éstas últimas se proporcionaban conjuntamente
con suscripciones a MSDN cubriendo los 4 principales roles de la
programación: Architects, Software Developers, Testers, y Database
Professionals. La f uncionalidad combinada de las 4 ediciones Team
System se ofrecía como la edición Team Suite.
Tools for the Microsoft Office System está diseñada para extender la
funcionalidad a Microsoft Office.

Las ediciones Express se han diseñado para principiantes, aficionados y


pequeños negocios, todas disponibles gratuitamente a través de la
página de Microsoft[2] se incluye una edición independiente para cada
lenguaje: Visual Basic, Visual C++, Visual C#, Visual J# para
programación .NET en Windows, y Visual Web Developer para la
creación de sitios web ASP.NET. Las ediciones express carecen de
algunas herramientas avanzadas de programación así cómo de
opciones de extensibilidad
Se lanzó el service Pack 1 para Visual Studio 2005 el 14 de diciembre de
2006.

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.

La mejora en las capacidades de Pruebas Unitarias permiten


ejecutarlas más rápido independientemente de si lo hacen en el
entorno IDE o desde la línea de comandos. Se incluye además un
nuevo soporte para diagnosticar y optimizar el sistema a través de las
herramientas de pruebas de Visual Studio. Con ellas se podrán ejecutar
perfiles durante las pruebas para que ejecuten cargas, prueben
procedimientos contra un sistema y registren su comportamiento; y
utilizar herramientas integradas para depurar y optimizar.

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.

LINQ (Language Integrated Query) es un nuevo conjunto de


herramientas diseñado para reducir la complejidad del acceso a Base
de Datos, a través de extensiones para C++ y Visual Basic así como para
Microsoft .NET Framework. Permite filtrar, enumerar, y crear
proyecciones de muchos tipos y colecciones de datos utilizando todos
la misma sintaxis, prescindiendo del uso de lenguajes especializados
como SQL o XPath.
Visual Studio 2008 ahora permite la creación de soluciones
multiplataforma adaptadas para funcionar con las diferentes versiones
de .Net Framework: 2.0. (Incluido con Visual Studio 2005), 3.0 (incluido
en Windows Vista) y 3.5 (incluido con Visual Studio 2008).

.NET 3.5 incluye biblioteca ASP.NET AJAX para desarrollar aplicaciones


para todos los navegadores más populares y utilicen las últimas
tecnologías y herramientas Web, incluyendo Silverlight y Popfly.

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

2.8 VISUAL STUDIO 2013


Fue la primera revisión de Visual Studio en incluir una versión Community,
que básicamente ofrece las mismas capacidades que la versión Professional
pero limitando su uso a empresas de pequeño tamaño, desarrolladores de
software libre y estudiantes. La gran ventaja de esta versión de Visual Studio
es que es gratuita.

17
Permite trabajar con los frameworks:

 .NET Framework 2.0


 .NET Framework 3.0
 .NET Framework 3.5
 .NET Framework 4.0
 .NET Framework 4.5
 .NET Framework 4.5.1
 .NET Framework 4.5.2
 Visual Studio 2015
 Permite trabajar con los frameworks:

 .NET Framework 2.0


 .NET Framework 3.0
 .NET Framework 3.5
 .NET Framework 4.0
 .NET Framework 4.5
 .NET Framework 4.5.1
 .NET Framework 4.5.2
 .NET Framework 4.6
 .NET Framework 4.6.1

18
2.9 VISUAL STUDIO 2017
Permite trabajar con los frameworks:

 .NET Framework 2.0


 .NET Framework 3.0
 .NET Framework 3.5
 .NET Framework 4.0
 .NET Framework 4.5
 .NET Framework 4.5.1
 .NET Framework 4.5.2
 .NET Framework 4.6
 .NET Framework 4.6.1
 .NET Framework 4.7
 .NET Framework 4.7.1
 .NET Framework 4.7.2

19
2.10 VISUAL STUDIO 2019

Permite trabajar con los frameworks:

 .NET Framework 2.0


 .NET Framework 3.0
 .NET Framework 3.5
 .NET Framework 4.0
 .NET Framework 4.5
 .NET Framework 4.5.1
 .NET Framework 4.5.2
 .NET Framework 4.6
 .NET Framework 4.6.1
 .NET Framework 4.7
 .NET Framework 4.7.1
 .NET Framework 4.7.2
 .NET Framework 4.8

Versiones de Windows compatibles:

 Windows 10 version 1903


 Windows 10 version 1809
 Windows 10 version 1803
 Windows 10 version 1709
 Windows 10 version 1703
 Windows 10 version 1607
 Windows 8.1
 Windows 7 SP1

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

Microsoft Visual C++ es un entorno de desarrollo utilizado


para crear aplicaciones para Windows utilizando lenguajes de
programación C/C++. Este entorno de programación hace uso
de un gran número de librerías y dependencias para compilar
las aplicaciones por lo que, para ejecutarlas en nuestro
sistema operativo, es necesario tener instaladas dichas
librerías y dependencias que, en Windows, se manifiestan
como ficheros .dll.

Aplicaciones de escritorio (Visual C++)


Una aplicación de escritorio en C++ es una aplicación nativa que puede acceder al
conjunto completo de API de Windows y se ejecuta en una ventana o en la consola del
sistema. Pueden ejecutar aplicaciones de escritorio de C++ en Windows XP a Windows 10
(aunque ya no es compatible oficialmente con Windows XP y hay muchas API de Windows
que se han introducido desde entonces).

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 Windows 10 puede empaquetar su aplicación de escritorio existente o un objeto COM


como una aplicación para UWP y agregar características UWP como toque o llamar a API
desde el conjunto de API de Windows moderno. También puede agregar una aplicación
para UWP a una solución de escritorio en Visual Studio y el paquete de ellos juntos en un
único paquete y usan las API de Windows para comunicarse entre ellos.

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.

ón o componente usa las extensiones a la sintaxis de C++ (según


lo permitido por la especificación de C++) para habilitar la interacción entre .NET y el
código C ++ nativo. C++ / c++ / aplicación de la CLI puede tener elementos que se ejecutan
de forma nativa y elementos que se ejecutan en .NET Framework con acceso a la
biblioteca de clases de Base. NET. C++ / c++ / CLI es la opción preferida cuando haya
código C++ nativo que necesita para trabajar con código escrito en C# o Visual Basic. Sirve
principalmente para su uso en archivos DLL de .NET en lugar de en el código de la interfaz
de usuario.

3.1 CONCEPTOS PRELIMINARES:

La POO es una nueva filosofía de programación que se basa en la


utilización de objetos. El objetivo de la POO no es sino la meta de
cualquier modelo de programación estructurada convencional:
"imponer" una serie de normas de desarrollo que aseguren y faciliten la
mantenibilidad y reusabilidad del código.
Los mecanismos básicos de la POO son: objetos, mensajes, métodos y
clases.
Objetos. Un objeto es una entidad que tiene unos atributos particulares
(datos) y unas formas de operar sobre ellos (los métodos o funciones
miembro). Es decir, un objeto incluye, por una parte una serie de
operaciones que definen su comportamiento, y una serie de variables
manipuladas por esas funciones que definen su estado. Por ejemplo, una
ventana Windows contendrá operaciones como "maximizar" y variables
como "ancho" y "alto" de la ventana.
Mensajes. En C++, un mensaje se corresponde con el nombre de uno de
los métodos de un objeto. Cuando se pasa un mensaje a un objeto, este
responde ejecutando el código de la función asociada.
Método. Un método (función miembro) se implementa dentro de un
objeto y determina como tiene que actuar el objeto cuando se produce el

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.

Constructor -> Función miembro que es automáticamente invocada cada


vez que se define un objeto, su objetivo es la inicialización del mismo.
Toma el mismo nombre que la clase, puede recibir parámetros y
podemos tener varios constructores definidos.
Destructor -> Función miembro invocada automáticamente cada vez que
se destruye un objeto. Su objetivo es realizar operaciones como
liberación de memoria, cerrar ficheros abiertos, etc. Toma el mismo
nombre de la clase comenzado primero por el carácter "~", no toma
parámetros y no admite la sobrecarga (sólo puede existir uno en cada
clase).
En muchos casos, para las clases más sencillas, podemos encontrar clases
que no tiene constructor o destructor, ó ninguno de los dos. En C++,
siempre existen constructores y destructores por defecto que realizan
una inicialización/liberación estándar.

25
3.1.1 MODELO DE PROGRAMACIÓN DE WINDOWS:

El modelo de programación propuesto por Windows es totalmente


diferente al modelo de ejecución secuencial de DOS. Al ser Windows
un entorno multitarea los programas tienen que estar preparados para
compartir los recursos de la maquina (procesador, memoria, teclado,
ratón …). Esto supone que Windows ha de disponer de métodos que
permitan suspender tareas para activar otras en función de las
circunstancias del momento (por ejemplo, por acción del usuario).

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".

Mensaje. Es una notificación a la aplicación de que ha ocurrido algo de


interés y que por lo tanto debe de realizarse alguna acción específica.
El origen del mensaje puede ser el usuario (haciendo click con el ratón
dentro e una ventana), la propia aplicación (mandándose un mensaje a
si misma) o Windows (pidiendo, por ejemplo, que se repinte la ventana
tras ocultarse otra que tuviese delante). Dado que la unidad mínima de
ejecución en Windows es una ventana, los mensajes van realmente
dirigidos a ellas.
Ventana y procedimiento de ventana. En Windows, una aplicación se
representa físicamente por su ventana principal (aunque después
pueda desplegar diversas ventanas hijas). Cada una de esas ventanas
dispone de una serie de propiedades y un código asociado (lo que
concuerda con el principio de la POO, en el concepto de objeto). Al
código asociado a cada ventana se le denomina procedimiento de
ventana. Es una función que recibe los mensajes, los procesa y
devuelve el control a Windows para quedar en espera.
26
Otra de las características específicas de Windows frente a DOS es el
uso de recursos por parte de las aplicaciones, como son iconos, menús,
mapas de bits, cursores, plantillas de diálogos, etc. Las aplicaciones
Windows disponen por tanto de recursos (gráficos generalmente)
propios almacenados en lo que se llama el fichero de recursos). El
proceso de construcción de programas en Windows incorpora una fase
adicional al compilado y enlazado de los módulos objeto y las librerías.
Hay un proceso final de compilación y de enlazado (bind) del fichero de
recursos.

3.2 ENTORNO DEL DESARROLLO:

El entorno de desarrollo viene representado por el icono "Developer


Studio". En él se integran entre otras las siguientes herramientas:

 Editor orientado a la codificación C/C++ (resaltando palabras


claves …)
 Compilador/Enlazador incremental, que acelera el proceso de
construcción de los programas.
 Depurador visual, que permite visualizar y modificar el contenido
de variables y áreas de memoria.

Visor de datos (browser) que permite fácilmente controlar dependencias


y referencias a funciones, datos, clases, etc. Además permite visualizar la
jerarquía de las clases utilizadas en los programas.
Herramientas complementarias como un analizador de ventanas (Spy ++)
o un trazador de funciones MFC.
En Visual C++ la construcción de cualquier tipo de programa se inscribe
dentro del concepto de proyecto (workspace). Un proyecto define los
pasos a seguir para alcanzar la construcción de un objetivo (un programa,
una DLL, etc.), en realidad es un concepto análogo a lo que se conoce
27
como "makefile" en otros entornos típicos de desarrollo en C. En
realidad, Visual C++ genera para cada proyecto dos ficheros que lo
definen, el fichero de workspace (con extensión wsp) y un makefile (con
extensión mak) estándar que permitiría la utilización del mismo proyecto
en otro entorno distinto.
Desde el punto de vista funcional, el proyecto contiene referencias a cada
uno de los ficheros fuentes (C/C++, con extensiones c y cpp
respectivamente), objetos, librerías o ficheros de recursos (extensión rc)
que se deben utilizar para construir el objetivo final del proyecto.
En definitiva, para crear cualquier programa con Visual C++ debemos
comenzar creando un proyecto para él, codificando y añadiendo los
módulos necesarios a dicho proyecto, y definiendo los recursos
asociados.
Cuando se crea un nuevo proyecto (desde la opción "Nuevo" del menú
"Fichero" aparece un diálogo que nos permite especificar que se cree un
nuevo workspace), lo primero que solicita el sistema es determinar el tipo
de objetivo que se persigue con este proyecto. Destacar las siguientes
posibilidades:

 Aplicación (.EXE) basada en la MFC (MFC AppWizard)


 Librería de enlace dinámico (.DLL) basada en la MFC. (MFC
AppWizard)
 Aplicación (.EXE) estándar para Windows (basada en el SDK)
 Librería de enlace dinámico (.DLL) (basada en el SDK)
 Aplicación (.EXE) modelo DOS (Console application)
 Librería estática (.LIB)
Como ya hemos destacado anteriormente, el objetivo del presente
curso es el manejo de la librería MFC, por lo que nos centraremos
básicamente en el primer punto (la construcción de una DLL con MFC
es totalmente similar).

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:

 Cada clase de nuestro programa dispondrá de dos ficheros: Un fichero


de cabecera (extensiones .h o .hpp) y un fichero de implementación
(.cpp). El fichero de cabecera contiene la definición de la clase
(definiciones de sus miembros datos y funciones - los mensajes -),
mientras que el fichero fuente contiene la implementación de esas
funciones miembro (los métodos de la clase).
 Un fichero de recursos (extensión .rc), aunque éste es opcional.
 Módulos objetos (.obj) y librerías estáticas (.lib) necesarias para crear
nuestro programa.

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.

En estos momentos aparecerá la secuencia de diálogos del generador


ClassWizard. Veamos cuales serían los pasos a seguir para crear una
aplicación sencilla:

Paso 1. Permite identificar el modelo de ventana principal de nuestra


aplicación: SDI, MDI o basada en diálogo. Nosotros elegiremos SDI.
Paso 2. Permite incorporar soporte a Bases de Datos en la aplicación. Esto lo
veremos más adelante. Seleccionaremos la opción sin soporte a bases de
datos.
Paso 3. Relativo al soporte OLE. Igual que en el caso anterior.
Paso 4. Otras características de la aplicación (barra de botones, barra de
estado, controles 3D …)
Paso 5. Generación de comentarios en el código (si/no) y usos posibles de las
MFC (como DLL o como LIB). Se recomienda la opción DLL en cuanto al
tamaño y modularidad del programa, pero deberemos asegurarnos de
distribuir la DLL junto con nuestro programa para que funcione
correctamente.
Paso 6. Permite modificar el nombre de las clases MFC que se van a generar,
además de especificar los ficheros en los que se implementa y la clase base

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:

 Clase CCurso1App (módulos curso1.h y curso1.cpp) que representa una


aplicación Windows.
 Clase CMainFrame (ficheros mainfrm.h y mainfrm.cpp) que
representan la ventana principal de la aplicación.
 Clases CCurso1Doc y CCurso1View (ficheros
curso1doc.h/curso1doc.cpp y curso1view.h/curso1view.cpp
respectivamente), representantes de lo que se conoce en el mundo
Windows como interfaz "Documento/Vista" y que trataremos en
adelante.
 Clase CAboutDlg que representa el típico diálogo de "Acerca de …" y
que ha sido generado automáticamente por AppWizard, esta clase
(rompiendo la norma habitual de la MFC) aparece definida e
implementada dentro los mismos ficheros que la clase aplicación
(módulos curso1.h y curso1.cpp). En el futuro evitaremos este tipo de
construcciones.

31
4. CONCLUSIONES

Se pueden crear aplicaciones que se intercomuniquen entre


estaciones de trabajo, páginas web y dispositivos móviles.

Permite la programación orientada a objetos (POO)


conjuntamente con el sistema de desarrollo SDK (también
denominado API) de Windows.

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).

Al ser 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.

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

También podría gustarte