UNIVERSIDAD DEL ISTMO
Ingeniería en computación
Compiladores
PROFESOR M. en C. J. Jesús Arellano Pimentel.
ALUMNO Emanuel Marcial Castillo.
NÚMERO DE PRÁCTICA 1
Creación de aplicaciones nativas con Microsoft Visual Studio
NOMBRE DE LA PRÁCTICA
Community 2017 para escritorio de Windows con C/C++
Conocer los principios básicos del desarrollo de aplicaciones nativas
de Windows, utilizando el entorno de desarrollo de Microsoft Visual
OBJETIVO GENERAL
Studio Community 2017 para escritorio de Windows empleando el
lenguaje C/C++
- Familiarizarse con el entorno de desarrollo integrado de
Microsoft Visual Studio Community 2017 para escritorio de
OBJETIVOS ESPECÍFICOS
Windows.
- Desarrollar un par de aplicaciones nativas de Windows.
EQUIPO REQUERIDO Computadora personal con 2 GB de RAM mínimo (4 recomendado).
- Windows 7/8/10
SOFTWARE REQUERIDO - Microsoft Visual Studio Community 2017 para escritorio de
Windows
1.- Fundamentos.
1.1.- Programación clásica (nativa) de Windows
La programación clásica de Windows utiliza directamente la interfaz de programación
de aplicaciones (API), se trata del camino más duro para la programación de Windows pero
también el camino más básico, fundamental, versátil y potente. Literalmente no se puede hacer
nada más con Windows utilizando otros enfoques. Al contrario, aprendiendo la programación
clásica de Windows a través de C y las API, es posible entender más claramente cómo
interactúan Windows y su aplicación, y esto puede ser un conocimiento muy útil [Petzold96].
1.2.- Microsoft Visual Studio Community 2017 para escritorio de Windows
Es una de las versiones gratuitas de la suite de programación de Visual Studio de la
empresa Microsoft, 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. Provee las herramientas y librerías necesarias para crear casi todo tipo de aplicaciones
Windows de 32 o 64 bits. En esta práctica se van a utilizar particularmente las tecnologías
Windows para desarrollar aplicaciones de escritorio en una máquina con Windows 10 de 64
bits, sin embargo los procedimientos descritos deben ser completamente compatibles con otras
versiones de Windows. Los Sistemas operativos admitidos son: Windows 7 Service Pack 1,
Ingeniería en Computación M. C. J. Jesús Arellano Pimentel / Emanuel Marcial Castillo
1
Windows 8, Windows 8.1, Windows Server 2008 R2 SP1, Windows Server 2012, Windows
Server 2016 Windows 10. La instalación se realiza en línea, con la ayuda de un asistente.
2.- Desarrollo
2.1 El entorno de desarrollo de Visual Studio 2012
La gama de productos de Visual Studio comparte un único entorno de desarrollo
integrado (IDE) que se compone de varios elementos: la barra de herramientas Menú, barra de
herramientas Estándar, varias ventanas de herramientas que se acoplan u ocultan
automáticamente a la izquierda, parte inferior y a la derecha, así como en el espacio del editor
central (ver Figura 1). Las ventanas de herramientas, menús y barras de herramientas
disponibles dependen del tipo de proyecto o archivo en el que esté trabajando [MSDN13].
Figura1. La IDE de MVS Express 2012
Un elemento importante de la interfaz es el Explorador de soluciones el cual
obviamente muestra las soluciones, proyectos y elementos incluidos en los proyectos. En el
Explorador de soluciones, es posible abrir archivos para editar, agregar nuevos archivos a un
proyecto y ver las propiedades de las soluciones, proyectos y elementos.
2.2 Crear una aplicación de consola de Windows
Paso 1 Iniciar el MVS Community 2017.
Paso 2 Crear un nuevo proyecto de aplicación de consola.
Es posible crear proyectos utilizando diferentes elementos que ofrece la interfaz. El
más simple es hacer clic sobre el texto que dice Nuevo Proyecto de la página principal
ubicada en el centro, o bien mediante el menú Archivo->Nuevo Proyecto.
Del cuadro de dialogo Nuevo proyecto en Instalado, seleccionar Visual C++, y a su vez
Escritorio de Windows y dentro de éste, seleccionar Aplicación de consola de Windows
Ingeniería en Computación M. C. J. Jesús Arellano Pimentel / Emanuel Marcial Castillo
2
(ver Figura 2). El nombre del proyecto o solución podría ser HolaMundo. Presionar el
botón Aceptar.
Figura 2. Cuadro de diálogo Nuevo Proyecto.
En la Figura 2 se puede apreciar la Ubicación del Proyecto, es muy importante recordar
este dato para futuras pruebas desde la consola de comandos.
Al finalizar la configuración, el Visual Studio generará una carpeta con un conjunto de
archivos y subcarpetas para alojar toda la información referente al proyecto, así como el
código fuente generado de forma predeterminada1. La Figura 3 muestra la pantalla principal
del Proyecto, en esta es posible observar el Explorador de soluciones con el árbol de Archivos
de código fuente generados, así como el de los archivos de encabezado.
1
ACTIVIDAD 1: Inspeccione el contenido de la carpeta generada en la Ubicación del Proyecto. Localice el
archivo ReadMe.txt, en él encontrará la información general del proyecto con una descripción de lo que contienen
los archivos relacionados con el proyecto.
Ingeniería en Computación M. C. J. Jesús Arellano Pimentel / Emanuel Marcial Castillo
3
Figura 3. Pantalla principal del Proyecto.
Paso 3 Adicionar una nueva línea de código.
En el archivo HolaMundo.cpp adicionar la siguiente línea de código dentro de la
función principal main:
printf("Hola mundo\n");
de tal forma que el código de dicho archivo quede como se muestra en la Figura 4.
Figura 4 Código Final de HolaMundo.cpp.
Ingeniería en Computación M. C. J. Jesús Arellano Pimentel / Emanuel Marcial Castillo
4
Paso 4 Compilar Solución.
Seleccionar del menú COMPILAR la opción Compilar solución2 (ver Figura 5).
Figura 5 Código para mostrar una caja de mensaje
Hecho lo anterior, se visualiza el resultado de la compilación, el cual debería ser el
siguiente (con excepción de la Ubicación del Proyecto):
1>------ Operación Compilar iniciada: proyecto: HolaMundo, configuración: Debug Win32 ------
1>stdafx.cpp
1>HolaMundo.cpp
1>HolaMundo.vcxproj -> C:\Users\EmanueL\Documents\UNISTMO\QUINTO
SEMESTRE\Compiladores\ejemplos\HolaMundo\Debug\HolaMundo.exe
1>HolaMundo.vcxproj -> C:\Users\EmanueL\Documents\UNISTMO\QUINTO
SEMESTRE\Compiladores\ejemplos\HolaMundo\Debug\HolaMundo.pdb (Partial PDB)
========== Compilar: 1 correctos, 0 incorrectos, 0 actualizados, 0 omitidos ==========
Paso 5 Ejecutar la aplicación desde la consola
Para ejecutar la aplicación primero se debe ejecutar la consola de Windows, la forma
más rápida de hacer esto es pulsando las teclas de Windows y R (Win+R)
simultáneamente3, aparecerá entonces el cuadro de diálogo Ejecutar, ahí se debe
teclear CMD y pulsar Aceptar (ver Figura 6). Hecho lo anterior se obtendrá la consola
de comandos de Windows en donde se debe cambiar al directorio de la Ubicación del
Proyecto que contiene el archivo ejecutable mediante el comando cd (ver Figura 7).
2
Observe que la opción Compilar Solución tiene una tecla de inicio rápido (Ctrl+Mayus+B), al igual que las otras
opciones del menú tienen cada una su propia tecla rápida.
3
Aún cuando es común decir “simultáneamente” quiere decir que primero se oprime la tecla de Windows y sin
soltarla oprimir la tecla R.
Ingeniería en Computación M. C. J. Jesús Arellano Pimentel / Emanuel Marcial Castillo
5
Figura 6 Ejecutar consola de comandos.
Figura 7 Consola de comandos con la sentencia para cambiarse de directorio.
Tecleado el comando cd con su respectiva ruta (C:\Users\EmanueL\Documents\UNISTMO\QUINTO
SEMESTRE\Compiladores\ejemplos\HolaMundo\Debug )
pulsar enter. Entonces se estará en la
ubicación del archivo ejecutable de la aplicación, para comprobar esto se puede
ejecutar el comando dir, el resultado deberá ser algo similar a lo mostrado en la Figura
8 en donde también se puede observar el archivo HolaMundo.exe el cual se debe
ejecutar para mostrar el resultado de la aplicación.
Ingeniería en Computación M. C. J. Jesús Arellano Pimentel / Emanuel Marcial Castillo
6
Figura 8 Consola de comandos con la ejecución del comando dir y la aplicación HolaMundo.exe.
Paso 6 Compilar y Ejecutar
Las formas más fáciles de iniciar la ejecución y/o depuración es presionando el botón
destinado para ello ( ) o pulsando F5. Iniciada la depuración
con el código actual simplemente se verá un pantallazo rápido de la consola de
comandos, esto se evita colocando una sentencia getchar(); entre las sentencias
printf(); y return 0;4.
2.2 Crear una Aplicación de Escritorio de Windows
Paso 1 Iniciar el MVS Community 2017.
Paso 2 Crear una nueva Aplicación de Escritorio de Windows.
Hacer clic sobre el texto que dice Nuevo Proyecto de la página principal ubicada en el
centro, o bien mediante el menú Archivo->Nuevo Proyecto. Del cuadro de dialogo
Nuevo proyecto en Instalado, seleccionar Visual C++, y a su vez Escritorio de
Windows y dentro de éste, seleccionar Aplicación de consola de Windows (ver Figura
9). El nombre del proyecto o solución podría ser AplicacionHolaMundo. Presionar el
botón Aceptar.
4
ACTIVIDAD 2: Agregue la sentencia getchar(); y oprima la tecla F5 o el botón del “Depurador local de
Windows”. Observe que ahora la consola de comandos se cierra hasta que se presione cualquier tecla para
continuar.
Ingeniería en Computación M. C. J. Jesús Arellano Pimentel / Emanuel Marcial Castillo
7
Figura 9. Cuadro de diálogo Nuevo Proyecto para generar un proyecto Win32.
Concluida la configuración se generará en la Ubicación del Proyecto una carpeta que
contiene todos los archivos de la aplicación, que en este caso son más archivos de los
que se generan para una aplicación de consola5.
Paso 3 Compilar y ejecutar.
De forma automática el Visual Estudio genera un “esqueleto” de aplicación, que en si
ya es una Aplicación de Escritorio de Windows con todas sus propiedades. Al compilar
y ejecutar (presionando la tecla F5) se genera la aplicación mostrada en la Figura 10.
5
ACTIVIDAD 3: Inspeccione el contenido de la carpeta generada en la Ubicación del Proyecto. Localice el
archivo ReadMe.txt, en él encontrará la información general del proyecto con una descripción de lo que contienen
los archivos relacionados con el proyecto.
Ingeniería en Computación M. C. J. Jesús Arellano Pimentel / Emanuel Marcial Castillo
8
Figura 10. AplicaciónHolaMundo y su cuadro de diálogo “Acerca de”
Paso 4 Cambiar y agregar un poco de código6
Ubicar la función BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) en la línea
96 del archivo AplicacionHolaMundo.cpp. Modificar los parámetros CW_USEDEFAULT, 0
en su segunda aparición dentro de la llamada a la función CreateWindow por los valores
400 y 300 respectivamente, estos dos valores permiten definir el tamaño de la ventana
a 400 pixeles de ancho por 300 de alto. La invocación de la función debe quedar de la
siguiente forma:
hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, 400, 300, NULL, NULL, hInstance, NULL);
Ubicar la función LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM
wParam, LPARAM lParam) en la línea 124 del archivo AplicacionHolaMundo.cpp.
Agregar dentro de la sentencia case WM_PAINT: despúes del comentario // TODO:
agregar código de dibujo aquí... la siguiente línea de código:
TextOut(hdc, 50, 50, L"Hola Mundo", lstrlen(L"Hola Mundo"));
Esta línea de código muestra la cadena Hola Mundo en el área cliente de la aplicación
de escritorio, en la posición 50, 50; el último parámetro que recibe es el tamaño de la
cadena. Es importante resaltar que por compatibilidad con UNICODE todas las
cadenas a utilizar en el código deben iniciar con la macro L y su tipo debería ser
TCHAR.
Paso 5 Compilar y ejecutar para visualizar los cambios
Una vez realizados los cambios del paso anterior guardar el archivo y compilar
presionando la tecla F5. El resultado debería ser el mostrado en la Figura 11.
6
ACTIVIDAD 4: Inspeccione el código generado en cada uno de los “Archivos de código fuente” y los
“Archivos de encabezado”; ponga especial atención en los comentarios inmersos en el código.
Ingeniería en Computación M. C. J. Jesús Arellano Pimentel / Emanuel Marcial Castillo
9
Figura 11. Aplicación HolaMundoWin32 modificado.
3.- Repaso de actividades
ACTIVIDAD 1: Inspeccione el contenido de la carpeta generada en la Ubicación del
Proyecto de la aplicación de consola. Localice el archivo ReadMe.txt, en él encontrará la
información general del proyecto con una descripción de lo que contienen los archivos
relacionados con el proyecto.
ACTIVIDAD 2: Agregue la sentencia getchar(); y oprima la tecla F5 o el botón del
“Depurador local de Windows”. Observe que ahora la consola de comandos se cierra hasta
que se presione cualquier tecla para continuar.
ACTIVIDAD 3: Inspeccione el contenido de la carpeta generada en la Ubicación del
Proyecto Win32. Localice el archivo ReadMe.txt, en él encontrará la información general del
proyecto con una descripción de lo que contienen los archivos relacionados con el proyecto.
ACTIVIDAD 4: Inspeccione el código generado en cada uno de los “Archivos de código
fuente” y los “Archivos de encabezado”; ponga especial atención en los comentarios inmersos
en el código.
4.- Referencias
Ingeniería en Computación M. C. J. Jesús Arellano Pimentel / Emanuel Marcial Castillo
10
[Petzold96] Petzold Charles, et al. Programación en Windows 95. Mc Graw Hill –
Microsoft Press. 1996.
[MSDN13] Microsoft. MSDN. Paseo rápido del entorno de desarrollo integrado (IDE).
Web: http://msdn.microsoft.com/es-es/library/ms165088.aspx. Fecha de
consulta: Octubre 2017.
Ingeniería en Computación M. C. J. Jesús Arellano Pimentel / Emanuel Marcial Castillo
11