Práctica 1

Anuncio
UNIVERSIDAD DEL ISTMO
Ingeniería en computación
Compiladores
PROFESOR
M. en C. J. Jesús Arellano Pimentel
NÚMERO DE PRÁCTICA
1
NOMBRE DE LA PRÁCTICA
Creación de aplicaciones nativas con Microsoft Visual Studio
Express 2012 para escritorio de Windows con C/C++
OBJETIVO GENERAL
OBJETIVOS ESPECÍFICOS
EQUIPO REQUERIDO
SOFTWARE REQUERIDO
Conocer los principios básicos del desarrollo de aplicaciones
nativas Win32 utilizando el entorno de desarrollo de
Microsoft Visual Studio Express 2012 para escritorio de
Windows empleando el lenguaje C/C++
- Familiarizarse con el entorno de desarrollo integrado
de Microsoft Visual Studio Express 2012 para
escritorio de Windows.
- Desarrollar un par de aplicaciones nativas Win32.
Computadora personal con 512 MB de RAM mínimo.
- Windows 7/8
- Microsoft Visual Studio Express 2012 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 Express 2012 para escritorio de Windows
Es una de las versiones gratuitas de la suite de programación de Visual Studio de la
empresa Microsoft. Aunque se trata de una versión reducida respecto a versiones más
profesionales 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 Win32 para desarrollar aplicaciones de escritorio en una máquina con Windows
Vista de 32 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, Windows 8, Windows Server 2008 R2 SP1 y Windows Server
2012. La instalación se puede realizar en línea, o descargando una imagen ISO para grabar en
CD y después instalar1.
1
http://www.microsoft.com/visualstudio/esn/products/visual-studio-express-products
Ingeniería en Computación
M. C. J. Jesús Arellano Pimentel
1
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. 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 Win32 de consola
Paso 1 Iniciar el MVS Express 2012.
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 a la izquierda, o bien mediante el menú Archivo->Nuevo
Proyecto.
Del cuadro de dialogo Nuevo proyecto en Plantillas seleccionar Visual C++ y Win32;
en tipo de aplicación seleccionar Aplicación de consola Win32 Visual C++ (ver Figura
2). El nombre del proyecto o solución podría ser HolaMundo1. Presionar el botón
Aceptar.
Ingeniería en Computación
M. C. J. Jesús Arellano Pimentel
2
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.
Paso 3 Configurar el Proyecto Actual.
En el Asistente para aplicaciones Win32 hacer clic sobre Configuración de la
aplicación; después deshabilitar la casilla de verificación de Comprobación del ciclo
de vida de desarrollo de seguridad(SDL), esto permitirá una mejor compatibilidad con
códigos ANSIC antiguos; finalmente oprimir el botón Finalizar (ver Figura 3).
Figura 3. Configuración de la aplicación de consola.
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 predeterminada2. 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.
2
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
3
Figura 3. Pantalla principal del Proyecto.
Paso 4 Adicionar una nueva línea de código.
En el archivo HolaMundo1.cpp adicionar la siguiente línea de código dentro de la
función principal _tmain:
printf("Hola mundo\n");
de tal forma que el código de dicho archivo quede como se muestra en la Figura 5.
Figura 5 Código Final de HolaMundo1.cpp.
Ingeniería en Computación
M. C. J. Jesús Arellano Pimentel
4
Paso 5 Compilar Solución.
Seleccionar del menú COMPILAR la opción Compilar solución3 (ver Figura 6).
Figura 6 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: HolaMundo1, configuración: Debug Win32 -----1> HolaMundo1.cpp
1> HolaMundo1.vcxproj -> C:\Users\Jesus\Documents\Visual Studio
2012\Projects\HolaMundo1\Debug\HolaMundo1.exe
========== Compilar: 1 correctos, 0 incorrectos, 0 actualizados, 0 omitidos ==========
Paso 6 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áneamente4, aparecerá entonces el cuadro de diálogo Ejecutar, ahí se debe
teclear CMD y pulsar Aceptar (ver Figura 7). 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 8).
Figura 7 Ejecutar consola de comandos.
3
Observe que la opción Compilar Solución tiene una tecla de inicio rápido (F7), al igual que las otras opciones
del menú tienen cada una su propia tecla rápida.
4
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
5
Figura 8 Consola de comandos con la sentencia para cambiarse de directorio.
Tecleado el comando cd con su respectiva ruta (C:\Users\Jesus\Documents\Visual Studio
2012\Projects\HolaMundo1\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 9 en donde también
se puede observar el archivo HolaMundo1.exe el cual se debe ejecutar para mostrar el
resultado de la aplicación.
Figura 8 Consola de comandos con la ejecución del comando dir y la aplicación HolaMundo1.exe.
Paso 7 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
5
printf(); y return 0; .
5
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
6
2.2 Crear un Proyecto Win32
Paso 1 Iniciar el MVS Express 2012.
Paso 2 Crear un nuevo proyecto Win32.
Hacer clic sobre el texto que dice Nuevo Proyecto de la página principal ubicada en el
centro a la izquierda, o bien mediante el menú Archivo->Nuevo Proyecto. Del cuadro
de dialogo Nuevo proyecto en Plantillas seleccionar Visual C++ y Win32; en tipo de
aplicación seleccionar Proyecto Win32 Visual C++ (ver Figura 9). El nombre del
proyecto o solución podría ser HolaMundoWin32. Presionar el botón Aceptar.
Figura 9. Cuadro de diálogo Nuevo Proyecto para generar un proyecto Win32.
Paso 3 Configurar el Proyecto Actual.
En el Asistente para aplicaciones Win32 hacer clic sobre Configuración de la
aplicación (o presionar el botón siguiente); después deshabilitar la casilla de
verificación de Comprobación del ciclo de vida de desarrollo de seguridad(SDL), esto
permitirá una mejor compatibilidad con códigos ANSIC antiguos; finalmente oprimir
el botón Finalizar (ver Figura 10).
Figura 10. Configuración de la aplicación Win32.
Ingeniería en Computación
M. C. J. Jesús Arellano Pimentel
7
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 consola6.
Paso 4 Compilar y ejecutar.
De forma automática el Visual Estudio genera un “esqueleto” de aplicación, que en si
ya es una aplicación Win32 con todas las propiedades de una aplicación para escritorio
de Windows. Al compilar y ejecutar (presionando la tecla F5) se genera la aplicación
mostrada en la Figura 11.
Figura 11. Aplicación HolaMundoWin32 y su cuadro de diálogo “Acerca de”
Paso 5 Cambiar y agregar un poco de código7
Ubicar la función BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) en la línea
96 del archivo HolaMundoWin32.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 126 del archivo HolaMundoWin32.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"));
6
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.
7
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
8
Esta línea de código muestra la cadena Hola Mundo en el área cliente de la aplicación
Win32 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 6 Compilar y ejecutar para visualizar los cambios
Una vez realizados los cambios del paso anterior guardar el archivo y compilar
presionando la tecla F7 y ejecutar presionando la tecla F5. El resultado debería ser el
mostrado en la Figura 12.
Figura 12. 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.
Ingeniería en Computación
M. C. J. Jesús Arellano Pimentel
9
4.- Referencias
[Petzold96]
[MSDN13]
Petzold Charles, et al. Programación en Windows 95. Mc Graw Hill –
Microsoft Press. 1996.
Microsoft. MSDN. Paseo rápido del entorno de desarrollo integrado (IDE).
Web: http://msdn.microsoft.com/es-es/library/ms165088.aspx. Fecha de
consulta Mayo 2013
Ingeniería en Computación
M. C. J. Jesús Arellano Pimentel
10
Descargar