Manual de Mingw

225
  PROYECTO FIN DE CARRERA PROGRAMACIÓN ORIENTADA A OBJETOS MEDIANTE MINGW DEVELOPER STUDIO   UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO EN INFORMÁTICA

Transcript of Manual de Mingw

UNIVERSIDAD PONTIFICIA COMILLASESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)INGENIERO EN INFORMTICA

PROYECTO FIN DE CARRERA

PROGRAMACIN ORIENTADA A OBJETOS MEDIANTE MINGW DEVELOPER STUDIO

AUTOR: JACOBO IGLESIAS JATO MADRID, Septiembre de 2008

Autorizada la entrega del proyecto del alumno:

Jacobo Iglesias Jato

EL DIRECTOR DEL PROYECTO Eduardo Alcalde Lancharro

Fdo.:

Fecha: 05/ 09 / 08

VB DEL COORDINADOR DE PROYECTOS Eduardo Alcalde Lancharro

Fdo.:

Fecha: 12/ 09/ 08

El verdadero progreso es el que pone la tecnologa al alcance de todos.

Henry Ford. (1863-1947)

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

AGRADECIMIENTOSA mis padres, por darme la oportunidad de demostrar mi vala y por su gran apoyo econmico y emocional durante estos cinco aos de carrera.

A mis hermanos, por su apoyo incondicional en los buenos y malos momentos.

A Jaime, Luis y Nico, porque durante estos aos han estado siempre ah y han hecho de ellos una etapa inolvidable en mi vida.

A Alba, por aguantarme y confiar en m durante todo este tiempo.

A Edu, por su apoyo y confianza durante estos ltimos aos.

Al Director del proyecto, Eduardo, por su cercana e inestimable ayuda a la hora de desarrollar este proyecto.

A Santiago Canales, porque sin su apoyo en aquellos primeros momentos difciles no habra alcanzado la meta.

I

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

RESUMENSe ha realizado un estudio y anlisis detallado del compilador de libre difusin (freeware) MinGW Developer Studio. Dado que este compilador es freeware, se puede descargar de la red sin ningn coste si bien no trae documentacin alguna. Esto es debido a que, al ser gratuito, se facilita su uso y expansin pero carece de documentacin o manual de ayuda al usuario. Por esta razn se ha realizado un anlisis profundo del compilador en el que se especifican todos los aspectos que faciliten al usuario su utilizacin como herramienta software de procesamiento de programas en los lenguajes C y C++.

En el proyecto se ha llevado a cabo una explicacin del entorno de desarrollo del compilador, del proceso de creacin de aplicaciones, de la estructura del programa y del proceso de depuracin de aplicaciones. Adems, se han explicado en detalle los diferentes comandos existentes en el men de la aplicacin as como las diferentes barras que componen la interfaz.

El estudio del funcionamiento del compilador en la parte que se corresponde a Orientacin a Objetos tambin ha sido objeto de estudio del proyecto. Para ello se han explicado los diferentes conceptos clave propios de la Programacin Orientada a Objetos (POO) as como los principales paradigmas que caracterizan a este enfoque de programacin.

Para poder llevar a cabo POO en MinGW Developer Studio es preciso emplear el lenguaje de programacin C++. Este lenguaje permite programar tanto en estilo procedimental (orientado a algoritmos), como en estilo orientado a objetos, como en ambos a la vez. Por ello, se han estudiado todas las opciones que ofrece este lenguaje en cuanto a Orientacin a Objetos as como las opciones que ofrece el compilador para permitir programar empleando el citado lenguaje de programacin.

II

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. El estudio de las libreras grficas del compilador para permitir desarrollar interfaces grficos de usuario (GUI) es otro de los aspectos que se abordan en el proyecto. Para ello, se ha explicado en detalle el proceso de creacin de ventanas, as como el manejo de algunos elementos bsicos como cuadros de dilogo o mens.

Para poder llevar a cabo programacin de interfaces grficas de usuario (GUI) en MinGW Developer Studio es preciso emplear el API de Windows (WinAPI), que es un conjunto de interfaces de programacin de aplicaciones (application programming interfaces - API) de Microsoft disponible en los sistemas operativos Microsoft Windows.

III

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

ABSTRACTA detailed study and analysis about the freeware compiler MinGW Developer has been carried out in this project. Though this is a freeware compiler, it can be downloaded for free from the Internet without any additional costs but it does not include any documentation. This is due to the fact that being freeware makes its use and expansion easier but it lacks documentation or user help manual. For this reason, an exhaustive compiler analysis has been carried out where all the aspects that make its use as a C and C++ programs processing software tool easier are specified.

A detailed explanation about several aspects of the compiler has also been carried out. Aspects such as the development environment, the applications creation process, program structure and applications debugging have been explained in a thorough way. All the different commands and bars that make the interface up have also been described.

The running of the compiler in the part related to Object Oriented Programming (OOP) has also been studied. For that reason, all the different basic concepts about OOP have been explained as well as the main programming paradigms that characterize this programming approach.

It is necessary to use C++ programming language to carry out OOP in MinGW Developer Studio. This language makes possible for users to program in procedural style (algorithm oriented programming) and also in object oriented style, as well as both at the same time. Due to that, all the options that this language offers related to Object Orientation have been studied as well as all the alternatives that this compiler offers to allow programming using the aforementioned programming language.

The study of the compilers graphic libraries that make graphical user interfaces (GUI) development possible is another aspect that has been tackled

IV

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. in the project. Therefore, the windows creation process as well as the use of some basic elements such as dialog boxes or menus has also been explained in detail.

To carry out graphical user interfaces (GUI) programming in MinGW Developer Studio it is necessary to use Windows API (WinAPI), which is a group of Microsofts application programming interfaces available in all Microsoft Windows operative systems.

V

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

NDICEPARTE I: Estudio del compilador ................................................................... 1 1. Entorno de desarrollo de MinGW Developer Studio ................................. 2 2. Iniciar MinGW Developer Studio ............................................................... 5 2.1. Descarga e instalacin de MinGW Developer Studio ...................... 6 2.2. Iniciar MinGW Developer Studio...................................................... 8 3. Crear una aplicacin en lenguaje de programacin C ............................ 10 4. Estructura del entorno de desarrollo de MinGW Developer Studio ......... 14 4.1. Zonas principales .......................................................................... 15 4.1.1. Zona de workspace ................................................................. 15 4.1.2. Zona de edicin ....................................................................... 21 4.1.3. Zona de salida ......................................................................... 23 4.2. Barras de tareas ............................................................................ 27 4.2.1. Men principal ......................................................................... 27 4.2.2. Barra de herramientas ............................................................ 66 5. Depuracin de programas (Debugging) .................................................. 67 5.1. Men Debug .................................................................................. 69

PARTE II: Funcionamiento del compilador en la parte que corresponde a Orientacin a Objetos (C++) ................................................. 79 1. Introduccin ............................................................................................ 80 2. Creacin de aplicaciones C++ en MinGW Developer Studio .................. 84 2.1. Opciones de MinGW Developer Studio relacionadas con C++ ..... 88 3. Programacin Orientada a Objetos (POO) en C++ ................................. 90 3.1. Clase ............................................................................................. 93 3.2. Constructor y destructor ................................................................ 95 3.3. Creacin de objetos....................................................................... 96 3.4. Especificadores de acceso ............................................................ 98 3.5. Ficheros de cabecera y espacio de nombres ................................ 99 3.6. Ejemplo de aplicacin orientada a objetos mediante MinGW Developer Studio ......................................................................... 101

VI

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. 3.7. Operadores de entrada/salida ..................................................... 103 3.8. Modificadores .............................................................................. 105 3.9. Variable reservada this ................................................................ 107 3.10. Mtodos inline ............................................................................. 109 3.11. Clases y mtodos friend .............................................................. 110 4. Paradigmas de programacin ............................................................... 113 4.1. Encapsulamiento ......................................................................... 114 4.2. Ocultacin.................................................................................... 116 4.3. Abstraccin .................................................................................. 117 4.4. Herencia ...................................................................................... 118 4.4.1. Herencia mltiple .................................................................. 127 4.5. Polimorfismo ................................................................................ 128 4.5.1. Implementacin de los mtodos virtuales ............................. 131 4.5.2. Mtodos virtuales puros ........................................................ 133 4.5.3. Clases abstractas .................................................................. 134 4.5.4. Destructores virtuales............................................................ 135

PARTE III: Estudio de las libreras grficas del compilador para permitir desarrollar interfaces grficas de usuario (GUI) ............................ 136 1. Introduccin .......................................................................................... 137 2. API de Windows (WinAPI) .................................................................... 140 2.1. Introduccin ................................................................................. 141 2.2. Caractersticas de la programacin en Windows ......................... 143 2.2.1. Independencia de la mquina ............................................... 143 2.2.2. Recursos ............................................................................... 143 2.2.3. Ventanas ............................................................................... 144 2.2.4. Eventos ................................................................................. 144 2.2.5. Controles ............................................................................... 146 2.3. Creacin de proyectos WinAPI en MinGW Developer Studio...... 147 2.4. Componentes de una ventana..................................................... 150 2.5. Notacin hngara ........................................................................ 152 2.6. Estructura de un programa Windows GUI ................................... 154

VII

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. 2.6.1. Cabeceras ............................................................................. 154 2.6.2. Prototipos .............................................................................. 155 2.6.3. Funcin de entrada WinMain ................................................ 155 2.6.3.1. Parmetros de entrada de WinMain ............................. 155 2.6.3.2. Funcin WinMain tpica................................................. 156 2.6.3.3. Declaracin ................................................................... 158 2.6.3.4. Inicializacin ................................................................. 158 2.6.3.5. Bucle de mensajes ....................................................... 159 2.6.4. Definicin de funciones ......................................................... 159 2.7. El procedimiento de ventana ....................................................... 160 2.7.1. Sintaxis.................................................................................. 160 2.7.2. Prototipo de procedimiento de ventana ................................. 161 2.7.3. Implementacin de procedimiento de ventana simple........... 161 2.8. Ejemplo GUI mediante MinGW Developer Studio ....................... 162 3. Mens y cuadros de dilogo ................................................................. 165 3.1. Mens ............................................................................................. 166 3.1.1. Funcin MessageBox ............................................................ 170 3.1.2. Ejemplo completo de mens y cuadros de mensaje ............. 174 3.2. Cuadros de dilogo ........................................................................ 178 3.2.1. Procedimiento de dilogo ...................................................... 181 3.2.2. Paso de parmetros a un cuadro de dilogo......................... 185 3.2.3. Ejemplo completo de cuadros de dilogo.............................. 189 4. Creacin de recursos mediante el editor de recursos ........................... 194

PARTE IV: Valoracin y conclusiones........................................................ 203 1. Valoracin econmica y planificacin ................................................... 204 1.1. Valoracin econmica ................................................................. 205 1.1.1. Coste de tecnologa .............................................................. 205 1.1.2. Coste de implantacin ........................................................... 206 1.2. Planificacin del proyecto ............................................................ 208 2. Conclusiones ........................................................................................ 210 3. Bibliografa ............................................................................................ 213

VIII

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

PARTE I: Estudio del compilador

-1-

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

Captulo

1

Entorno de desarrollo de MinGW Developer Studio

-2-

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

CAPTULO 1. Entorno de desarrollo de MinGW Developer Studio.El compilador MinGW Developer Studio es de libre difusin (freeware), esto es, puede descargarse de forma gratuita desde la pgina web de Parinya (www.parinyasoft.com) en las siguientes versiones:

Nombre Fichero

Tamao (MB)

Sistema Operativo

Versin

Fecha de creacin 01-042005

Contenido Entorno de desarrollo y compilador. Entorno de desarrollo y compilador. Incluye

MinGWStudioFullSetup2_05.exe

26

Windows

2.05

MinGWStudioFullSetupPlus2_05.exe

125

Windows

2.05

01-042005

adems las libreras wxWidgets 2.6.0 para crear entornos grficos.

Mingw-devstudio_linux2.06.tar.gz

2

Linux

2.06

08-072005

Entorno de desarrollo y compilador.

Adems, en caso de descargarse para el sistema operativo Windows Vista es necesario llevar a cabo los siguientes pasos:

Despus de instalar el compilador se debe editar la variable de entorno PATH. Esto se hace en Panel de control avanzada del sistema avanzadas Sistema Configuracin Opciones

Propiedades del sistema

Variables de entorno.

-3-

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. Aadir a la variables de entorno PATH los siguientes directorios:

C:\MinGWStudio;C:\MinGWStudio\MinGW\bin;C:\MinGWStudio\MinGW\lib\gcc\mingw32\3.4.2

-4-

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

Captulo

2

Iniciar MinGW Developer Studio

-5-

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

CAPTULO 2. Iniciar MinGW Developer Studio.Antes de explicar el inicio del entorno de desarrollo de MinGW Developer Studio se explicarn los pasos que hay que dar a la hora de descargar e instalar el software.

2.1. Descarga e instalacin de MinGW Developer Studio.Para descargar el programa se accede a la pgina Web de Parinya (www.parinyasoft.com). En el apartado Download aparecen una serie de versiones del software que se pueden descargar. La versin que se recomienda descargar es la nmero 3 de MS-Windows por ser la ms completa y la que incluye todas las herramientas disponibles para el software. Se descarga, por tanto, el fichero MinGWStudioFullSetupPlus-2_05.exe.

Una vez descargado el fichero de instalacin, se ejecuta y aparece un asistente de descarga del software llamado Simtel Downloader.

-6-

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

Una vez que el asistente de descarga alcanza el 100% de progreso aparece el asistente de instalacin de MinGW Developer Studio.

Se pulsa el botn Next y se siguen los pasos del asistente en los que se solicitar la aceptacin de los trminos de licencia, la seleccin de los componentes a instalar y el directorio de instalacin. Una vez instalado el software tras pulsar el botn Install aparece una ventana de confirmacin de instalacin donde aparecen marcadas por defecto las opciones Show Readme para ver los crditos del software y Run MinGW Developer Studio 2.05 para

-7-

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. ejecutar la aplicacin. Se desactivan las opciones que no interesen y se pulsa el botn Finish. En este momento el software ya estar instalado.

2.2. Iniciar MinGW Developer Studio.Para iniciar el entorno de desarrollo de MinGW Developer Studio se hace lo siguiente:

i.

En el escritorio de Windows, se sita el puntero del ratn en el men Inicio, en la esquina inferior izquierda, y se pulsa el botn izquierdo del ratn.

ii. Se elige la opcin Todos los programas o Programas (Men Inicio clsico) en el men Inicio.

iii. En el siguiente men, se encontrar la opcin MinGW Developer Studio, y se sita sobre ella el ratn.

iv. Se elige la opcin MinGW Developer Studio en el men.

-8-

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

v. Transcurrido el tiempo de carga, se muestra el escritorio de MinGW Developer Studio.

-9-

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

Captulo

3

Crear una aplicacin en lenguaje de programacin C

C- 10 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

CAPTULO 3. Crear una aplicacin en lenguaje de programacin C.Inicialmente, el rea de trabajo del entorno de desarrollo est vaca. Para crear ahora la estructura de una nueva aplicacin, se procede del siguiente modo:

a. Se elige la opcin New en el men File (o se pulsan las teclas Ctrl y N simultneamente) o bien se pulsa el botn herramientas. de la barra de

b. A continuacin, se presenta una ventana en la que se puede elegir el tipo de aplicacin que se desea crear. Se selecciona la pestaa Projects y la aplicacin de tipo Win32 Console Application. Ahora se procede a nombrar el proyecto escribiendo el nombre que se desea en el cuadro Project name. En el cuadro Location se permite especificar la ruta de acceso al directorio, es decir, el directorio donde se crear la carpeta de nombre igual al del proyecto y que contendr todos los ficheros relativos

- 11 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. al proyecto (ejecutables, cdigo fuente, etc.). Una vez especificado el nombre del proyecto y la ruta de acceso se confirma el cuadro de dilogo pulsando OK y ya se ha creado un proyecto nuevo. En el directorio especificado en el cuadro Location se habr creado un fichero llamado nombre_del_proyecto.msp (MinGWStudio Project Files). Puede darse la situacin de que el fichero creado tenga extensin *.mdsp en vez de *.msp. Esto se debe a que algunas versiones del compilador ponen dicha extensin a los ficheros de proyecto.

c. El paso siguiente es crear un fichero y aadirlo al proyecto actualmente vaco. Se elige la opcin New del men File (o se pulsan las teclas Ctrl y N simultneamente) o se pulsa el botn de la barra de herramientas.

Se selecciona la pestaa Files y el fichero de tipo C/C++ Source File para crear un fichero de lenguaje de programacin C (*.c) que contenga el cdigo fuente. Se nombra el fichero (se debe aadir la extensin .c) en el cuadro File name y se confirma pulsando OK. El campo Location no debe ser modificado ya que por defecto se muestra la ruta de acceso al directorio del proyecto creado anteriormente. Adems, la checkbox Add to project se encuentra activada para aadir el fichero al proyecto que se haba creado previamente. Por tanto, la ruta de acceso y la checkbox no deben ser modificadas. En el directorio del proyecto se habr creado un fichero llamado nombre_del_fichero.c (C Source File).

- 12 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

d. El entorno ya est listo para introducir el cdigo en la zona de edicin.

A continuacin se describir la estructura del entorno de desarrollo as como los componentes y sus propiedades ms importantes.

- 13 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

Captulo

4

Estructura del entorno de desarrollo de MinGW Developer Studio

- 14 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

CAPTULO 4. Estructura del entorno de desarrollo de MinGW Developer Studio.A continuacin se explicar la estructura del entorno de desarrollo en su pantalla inicial. Dicha pantalla consta de tres zonas principales y dos barras de tareas.

4.1. Zonas principales.Se distinguen tres zonas principales: la zona de workspace, la zona de edicin y la zona de salida.

4.1.1. Zona de workspace.En esta zona aparecer el nombre del proyecto que se cree as como los diferentes ficheros asociados a l. Los ficheros son agrupados en cuatro carpetas principales en funcin de su tipologa. Estas carpetas son presentadas

- 15 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. en estructura de rbol de tal forma que se pueden minimizar y maximizar para ocultar y ver su contenido respectivamente haciendo doble clic sobre ellas o sobre el smbolo situado a su izquierda. Las cuatro carpetas en las que son agrupados son: Source Files (Ficheros Fuente), Header Files (Ficheros de cabecera), Resource Files (Ficheros de recursos) y Other Files (Otros ficheros). Por ejemplo, en el proyecto del captulo 3, la zona de workspace fue la siguiente:

Source Files: en esta carpeta aparece el fichero fuente asociado al proyecto. Este fichero puede tener las siguientes extensiones: *.c, *.cc, *.cpp, *.cxx. Se pueden aadir ficheros fuente a un proyecto ya creado pulsando la carpeta Source Files con el botn derecho del ratn y seleccionando Add source files to project Se selecciona el fichero con la extensin apropiada y se aade al proyecto.

- 16 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

Header Files: en esta carpeta aparecen los ficheros de cabecera asociados al proyecto. Estos ficheros pueden tener las siguientes extensiones: *.h, *.hh, *.hpp, *.hxx. Se pueden aadir ficheros de cabecera a un proyecto ya creado pulsando la carpeta Header Files con el botn derecho del ratn y seleccionando Add header files to project Se selecciona el fichero con la extensin apropiada y se aade al proyecto.

- 17 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

Resource Files: en esta carpeta aparecen los ficheros con extensin *.rc y *.rc2 asociados al proyecto. Estos ficheros son empleados por GTK+ (GIMP Tool Kit) para tratar las opciones predeterminadas de las aplicaciones. Con ellos se pueden cambiar los colores de cualquier control, poner un dibujo de fondo, etc. GTK+ es un grupo importante de bibliotecas o rutinas para desarrollar interfaces grficas de usuario (GUI) mediante C, C++ y otros lenguajes de programacin. Se pueden aadir ficheros *.rc y *.rc2 a un proyecto ya creado pulsando la carpeta Resource Files con el botn derecho del ratn y seleccionando Add resource files to project Se selecciona el fichero con la extensin apropiada y se aade al proyecto.

- 18 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

Other Files: en esta carpeta aparecen ficheros de cualquier tipo distinto a los anteriormente citados que haya sido asociado al proyecto. Al igual que en las tres carpetas anteriores, se pueden aadir ficheros a un proyecto ya creado pulsando la carpeta Other Files con el botn derecho del ratn y seleccionando Add other files to project Se selecciona el fichero con la extensin apropiada y se aade al proyecto.

- 19 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

Finalmente, en la zona de workspace es posible ejecutar acciones sobre el proyecto o sus ficheros asociados pulsando con el botn derecho del ratn sobre su icono correspondiente. De esta forma se evita tener que buscar en el men principal la opcin correspondiente al

comportamiento que se desea realizar. Sobre un proyecto aparecen las siguientes opciones: o Close: mismo comportamiento que File Close. Set Active

o Set Active Configuration: mismo comportamiento que Build Configuration. o Settings: mismo comportamiento que Project o Build: mismo comportamiento que Build o Rebuild: mismo comportamiento que Build Settings.

Build. Rebuild. Build All

o Build All Configurations: mismo comportamiento que Build Configurations. o Clean: mismo comportamiento que Build Clean.

o Clean All Configurations: mismo comportamiento que Build Configurations. o Execute: mismo comportamiento que Build Execute.

Clean All

o Export Makefile: mismo comportamiento que Project - 20 -

Export Makefile.

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. Los comportamientos correspondientes a cada opcin sern explicados en detalle en el apartado 4.2.1 Men principal.

Por otra parte, si se pulsa con el botn derecho un fichero asociado a un determinado proyecto aparecen las siguientes opciones: o Open nombre_fichero: abre el fichero seleccionado en la zona de edicin. o Compile nombre_fichero: compila el fichero seleccionado. o Remove nombre_fichero from project: elimina el fichero seleccionado del proyecto.

La opcin Compile nombre_fichero slo aparece en los ficheros Source Files y en los ficheros Header Files mientras que las otras dos opciones son comunes a los cuatro tipos de ficheros que pueden asociarse a un proyecto.

4.1.2. Zona de edicin.En esta zona se podr editar el cdigo asociado al proyecto. Dicho cdigo es presentado al usuario en diferentes colores para permitir diferenciar segmentos de cdigo en funcin de su tipologa. El color verde es empleado para destacar los comentarios y observaciones que se escriban en el cdigo mientras que el color azul se utiliza para destacar palabras clave del lenguaje de programacin tales como tipos de variables (int, char, float, ), operadores (==, &, *, ), palabras reservadas (do, if, for, return, ), etc. Por otra parte, las directivas del precompilador (include, define, ) se muestran en color marrn mientras que el texto a presentar con printf y el tipo de variable a leer con scanf se muestran en color prpura. Finalmente, los nombres de variables y las funciones propias del lenguaje como printf, scanf, gets, fflush, stdin, etc. se muestran en color negro. A continuacin se muestra un ejemplo de cdigo fuente donde se observan los diferentes colores en la zona de edicin segn la tipologa del cdigo.

- 21 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

En el ejemplo anterior tambin se puede observar que el compilador presenta en el lado izquierdo de la zona de edicin la numeracin de las lneas del cdigo. De esta forma se facilita el seguimiento del cdigo y la futura estimacin de la complejidad del programa. Adems, se ofrece la posibilidad de ocultar bloques de cdigo independientes como declaraciones de estructuras, funciones, bloques if-else, bloques while o do-while, bloques for o incluso la propia funcin principal (main). De esta forma se optimiza la bsqueda de errores en cdigo permitiendo al usuario ocultar bloques de cdigo en los que se descarta la aparicin de fallos.

Tambin hay que destacar que existe una manera de ampliar la zona de edicin para facilitar la visualizacin del cdigo o en caso de que el usuario tenga problemas de vista. Esta forma de hacer zoom sobre la zona de edicin consiste en situarse sobre la misma y pulsar la tecla Ctrl y girar la rueda del ratn hacia atrs simultneamente. Si, por el contrario, se pulsa la tecla Ctrl y se gira la rueda del ratn hacia delante simultneamente entonces se disminuir el zoom sobre la zona de edicin. De esta manera tan sencilla se permite al usuario ajustar el rea de visin de la zona de edicin en funcin de sus necesidades. - 22 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. Por ltimo, cuando se abre un fichero aparece una pestaa con su nombre en la parte superior de la zona de edicin. Si se pulsa con el botn derecho sobre dicha pestaa aparecen una serie de opciones que permiten ejecutar acciones sobre el fichero sin necesidad de buscar la opcin en el men principal. Estas opciones son las siguientes: o Close: mismo comportamiento que File o Save: mismo comportamiento que File o Save As: mismo comportamiento que File o Find: mismo comportamiento que Edit Close. Save. Save As.

Find. Replace.

o Replace: mismo comportamiento que Edit o Print: mismo comportamiento que File

Print. Print Preview.

o Print Preview: mismo comportamiento que File

Los comportamientos correspondientes a cada opcin sern explicados en detalle en el apartado 4.2.1 Men principal.

4.1.3. Zona de salida.En esta zona se mostrarn mensajes acerca de las operaciones efectuadas por el compilador a la hora de compilar, enlazar y ejecutar un programa. As mismo, se mostrar informacin acerca de los errores y warnings (advertencias) que se produzcan al efectuar alguna de las operaciones anteriormente comentadas. Estos mensajes sern presentados en la pestaa Build, primera de las tres pestaas de las que consta la zona de salida. La segunda pestaa (Debug) presenta informacin acerca de las operaciones del depurador de errores si bien el funcionamiento del mismo se ver en el captulo 5 Depuracin de programas. La tercera y ltima pestaa (Find in Files) se encarga de presentar los resultados de la bsqueda en ficheros, es decir, la informacin relativa a la bsqueda de palabras en ficheros del proyecto. La bsqueda en ficheros ser explicada con mayor detalle en el apartado 4.2.1 Men principal. A continuacin se explicar en detalle la pestaa Build donde

- 23 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. se muestran mensajes relativos a la compilacin, enlazado y ejecucin de programas. Bajo estas lneas se muestra un ejemplo de un programa que, tras ser compilado, presenta errores y warnings:

Como se puede observar, el programa presenta tres errores y un warning. Las dos primeras lneas de la zona de salida muestran un mensaje donde se informa de que el proyecto de nombre Proyecto ha sido compilado. La segunda lnea (Compiling) es generada antes de llevarse a cabo la compilacin y presenta informacin acerca de su resultado. La tercera lnea indica el nombre del fichero compilado (programa.c) mientras que la cuarta lnea indica el nombre de la funcin donde se han producido los errores y warnings (main). Las cuatro lneas siguientes (tantas como errores y warnings se han producido) muestran informacin acerca de cada uno de los errores y warnings. Por cada fallo se presenta la siguiente informacin: fichero en el que se ha producido el fallo, nmero de lnea dentro del fichero en el que se ha producido el fallo, tipo de fallo (error o warning) y breve descripcin del fallo producido. Hay que destacar que el warning que se muestra en el ejemplo es caracterstico de MinGW Developer Studio ya que se debe introducir una lnea en blanco al final del cdigo fuente. En caso contrario, el compilador presentar una advertencia que, si bien no - 24 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. afecta a la ejecucin del programa, resulta molesto para el usuario. Finalmente, la ltima lnea muestra un resumen del resultado de la compilacin en el que se muestra el nmero total de errores y warnings que se han producido tras la compilacin. Adems, a la izquierda de esta informacin aparece el nombre de un fichero: programa.o. Este fichero es generado por el compilador al hacer la compilacin y aparece en la carpeta Debug del directorio del proyecto que ha sido compilado.

Una de las caractersticas que presenta el compilador en la zona de salida es la facilidad a la hora de localizar de forma rpida y precisa errores y warnings en cdigo. Aunque el compilador informa acerca del nmero de lnea en que se producen los errores y warnings tal y como se ha comentado anteriormente, la forma ms fcil y rpida de localizar dichos fallos es haciendo doble clic sobre la lnea de la zona de salida en la que se informa acerca del fallo. Una vez hecho esto, la lnea correspondiente al fallo se sombrear en color amarillo y en la zona de edicin se mostrar el segmento de cdigo en el que se produjo el fallo. Dentro de este segmento faltara localizar la lnea en la que se produjo el fallo. Pues bien, esto se realiza por medio de una flecha de color verde situada en el margen izquierdo de la zona de edicin. Esta flecha est situada a la derecha del nmero de lnea en que se produjo el fallo y apunta a la lnea que lo contiene. De esta forma el fallo ya ha sido localizado y se puede corregir de forma rpida sin necesidad de realizar una bsqueda en la zona de edicin para encontrar la lnea en que se produjo. La situacin anteriormente descrita se ilustra en la siguiente captura:

- 25 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

Si en vez de realizar la compilacin del programa se hiciera el enlazado del mismo, se presentaran las siguientes diferencias:

La segunda lnea mostrara el mensaje Compiling source file(s) en vez de Compiling ya que llevara a cabo la compilacin y enlazado de todos los ficheros fuente asociados al proyecto. En la compilacin, nicamente se compila un fichero. Si el enlazado es satisfactorio se muestra el mensaje Linking antes de mostrar el resultado del enlazado sin fallos. Si por el contrario el enlazado tiene fallos, se muestran los fallos al igual que en la compilacin.

La ltima lnea muestra el nombre del fichero programa.exe que se genera al hacer el enlazado y que aparece en la carpeta Debug del directorio del proyecto que ha sido compilado. Este fichero sustituye al fichero programa.o que haba sido generado en la compilacin dado que al realizar el enlazado tambin se hace la compilacin.

Si se realizara la ejecucin del programa, la zona de salida contendra informacin relativa al enlazado puesto que ste es imprescindible para ejecutar

- 26 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. el programa. Si se intenta ejecutar el programa sin llevar a cabo el enlazado se presenta el siguiente cuadro de dilogo:

El cuadro de dilogo sobre estas lneas informa al usuario que el fichero ha sido modificado desde el ltimo enlazado o compilacin o bien no ha sido enlazado todava. Si se pulsa S el compilador llevar a cabo el enlazado (incluye la compilacin) del programa y su ejecucin. Si, por el contrario, se pulsa No se llevar a cabo la ejecucin del programa con la ltima versin enlazada del fichero (el fichero *.exe en la carpeta Debug del directorio del proyecto) y, por tanto, se estar ejecutando un cdigo distinto al que hay en la zona de edicin. Si se hubiera pulsado Cancelar el cuadro de dilogo simplemente habra desaparecido.

4.2. Barras de tareas.Adems de las zonas principales explicadas anteriormente, existen dos barras de tareas en la parte superior de la pantalla que permiten manejar las diversas opciones del programa, realizar ajustes y ejecutar de forma directa las operaciones ms comunes por medio de iconos. Estas dos barras de tareas son: el men principal y la barra de herramientas.

4.2.1. Men principal.Consta de nueve mens que permiten al usuario llevar a cabo operaciones tales como el guardado del proyecto, la creacin de un nuevo proyecto, ajustar las opciones del compilador, etc. Estos mens son: File (Archivo), Edit (Editar), View (Vista), Project (Proyecto), Build (Construir), Debug (Depurar), Tools (Herramientas), Window (Ventana) y Help (Ayuda). Cada uno de los mens ser explicado con mayor detalle a continuacin. - 27 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. File: Consta de catorce opciones como son New (Nuevo), Open (Abrir), Close (Cerrar), Close All (Cerrar todo), Save (Guardar), Save As (Guardar como), Save All (Guardar todo), Export (Exportar), Page Setup (Configurar pgina), Print (Imprimir), Print Preview (Vista previa de impresin), Recent Files (Ficheros recientes), Recent Projects

(Proyectos recientes) y Exit (Salir).

o New: Puede activarse tambin pulsando simultneamente las teclas Ctrl y N. Esta opcin permite crear un nuevo proyecto tal y como se ha explicado en el captulo 3 si bien solo se explic cmo crear un proyecto de aplicacin de consola Win32. Hay que recordar que los programas de consola se desarrollan mediante Funciones de consola, las cuales proporcionan compatibilidad con el modo de caracteres en ventana de consola. Las bibliotecas en tiempo de ejecucin del compilador MinGW Developer Studio

tambin proporcionan entrada y salida de ventanas de consola con funciones estndar de E/S, como printf() y scanf(). Las aplicaciones de consola no tienen interfaz grfica de usuario. Al compilarse producen un fichero .exe que se puede ejecutar como una aplicacin independiente desde la lnea de comandos.

Otro tipo de proyecto que se puede crear es el de aplicacin Win32. Una aplicacin Win32 es un programa ejecutable (EXE) escrito en C o C++, que utiliza llamadas a la API Win32 para crear una interfaz grfica de usuario.

El tercer tipo de proyecto que se permite crear es el de biblioteca de vnculos dinmicos (DLL) Win32. Un fichero DLL para Win32 es un fichero binario, escrito en C o C++, que utiliza llamadas a la API Win32 en lugar de llamadas a clases

- 28 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. MFC (Microsoft Foundation Classes) y que acta como una biblioteca compartida de funciones que pueden utilizar simultneamente mltiples aplicaciones.

El cuarto tipo de proyecto que se permite crear es el de biblioteca esttica. Una biblioteca esttica, tambin conocida como fichero, consiste en un conjunto de rutinas que son copiadas en una aplicacin por el compilador o el enlazador, produciendo ficheros con cdigo objeto y un fichero ejecutable independiente. Este proceso, y el fichero ejecutable, se conocen como construccin esttica de la aplicacin objetivo. La direccin real, las referencias para saltos y otras llamadas a rutinas se almacenan en una direccin relativa o simblica, que no puede resolverse hasta que todo el cdigo y las bibliotecas son asignados a direcciones estticas finales.

Otro tipo de proyecto que se puede crear es el de aplicacin GTK+. Una aplicacin GTK+ es un programa escrito en lenguaje de programacin C que realiza llamadas a bibliotecas o rutinas GTK (GIMP Toolkit) para desarrollar interfaces grficas de usuario (GUI). La gran ventaja de GTK+ es que es multiplataforma por lo que se pueden escribir programas en plataforma Windows y que stos sean portables a plataforma Linux, por ejemplo. Adems, GTK+ es software libre (bajo la licencia LGPL) y parte importante del proyecto GNU, que tiene por objetivo la creacin de un sistema operativo completamente libre: el sistema GNU.

El ltimo tipo de proyecto que se puede crear es el de aplicacin wxWindows (actualmente wxWidgets). Una

aplicacin wxWindows es un programa escrito en lenguaje de programacin C++ que realiza llamadas a bibliotecas o rutinas wxWindows (wxWidgets) para desarrollar interfaces grficas de usuario (GUI). Al igual que GTK+, wxWindows tambin es multiplataforma y

- 29 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. software libre (bajo la licencia LGPL). Hay que resaltar que el compilador MinGW Developer Studio fue publicado en el ao 2002, un ao antes de que Microsoft interpusiera una demanda contra wxWindows por una posible confusin con el nombre de su sistema operativo. Desde entonces, wxWindows recibe el nombre de wxWidgets. Las wxWidgets proporcionan una interfaz grfica basada en las bibliotecas ya existentes en el sistema (nativas), con lo que se integran de forma ptima y resultan muy portables entre distintos sistemas operativos. El 22 de Abril de 2005 fue incluida la versin 2.6 de wxWidgets en la versin 2.05 de MinGW Developer Studio.

Adems de los tipos de proyecto citados anteriormente existen cuatro tipos de ficheros que se pueden crear mediante MinGW Developer Studio: C/C++ Source File (fichero fuente C/C++), C/C++ Header File (fichero de cabecera C/C++), Resource Script (script de recurso) y Text File (fichero de texto).

El fichero C/C++ Source File es un fichero que contiene el cdigo fuente del programa escrito en lenguaje de programacin C o C++ y que aparecer en la carpeta Source Files de la zona de workspace. Este fichero puede tener extensin *.c, *.cc, *.cpp o *.cxx. El fichero C/C++ Header File, sin embargo, es un fichero, a menudo en cdigo fuente, que es incluido automticamente en otro fichero fuente (source file) por parte del compilador. Tpicamente, los ficheros de cabecera son incluidos en otro fichero fuente por medio de directivas del compilador al comienzo (o cabecera) de ste. Un fichero de cabecera contiene normalmente declaraciones de subrutinas (funciones), variables y otros identificadores. Los identificadores que necesitan ser declarados en ms de un fichero fuente pueden declararse en un fichero de cabecera que ser incluido posteriormente cuando su contenido sea requerido. Este

- 30 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. fichero aparecer en la carpeta Header Files de la zona de workspace y tendr extensin *.h, *.hh, *.hpp o *.hxx.

Por otra parte, el fichero Resource Script contiene declaraciones que definen todos los elementos que sern incluidos en el fichero binario de recursos compilado (compiled binary resource file). Cada declaracin describe un elemento de recurso (resource item), identificado por un ID, y parmetros adicionales (que varan en funcin del tipo de recurso). Un resource script puede incluso referenciar un resource item que est almacenado en un fichero independiente, como un bitmap o un icono. Este fichero aparecer en la carpeta Resource Files de la zona de workspace y tendr extensin *.rc o *.rc2.

Por ltimo, el fichero Text File contiene comentarios, informacin administrativa (versin, desarrollador/es, fecha, etc.) y cualquier otra informacin que se quiera adjuntar al proyecto. Este fichero aparecer en la carpeta Other Files de la zona de workspace y tendr extensin *.txt.

o Open: Puede activarse tambin pulsando simultneamente las teclas Ctrl y O. Esta opcin permite abrir un fichero de los siguientes tipos: C/C++ Files incluye Source Files, Header Files y Resource Files (extensiones *.c, *.cc, *.cpp, *.cxx, *.h, *.hh, *.hpp, *.hxx, *.rc y *.rc2), Text Files (extensin *.txt), MinGWStudio Project Files (extensin *.msp o *.mdsp) y cualquier otro fichero con extensin vlida para ser abierta por el software. A continuacin se muestra una captura de la ventana que aparece al pulsar la opcin Open y que permite seleccionar el fichero a abrir.

- 31 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

o Close: Esta opcin cierra el fichero que se encuentre activo en la zona de edicin. Es decir, de entre todos los ficheros que pueden encontrarse abiertos simultneamente en la zona de edicin y que se visualizan por medio de pestaas en la parte superior cierra el fichero que se est visualizando. La opcin Close se encontrar desactivada si no hay ningn fichero abierto en la zona de edicin.

o Close All: Esta opcin cierra todos los ficheros que se encuentren abiertos simultneamente y que se visualizan por medio de pestaas en la parte superior de la zona de edicin. La opcin Close All se encontrar desactivada si no hay ningn fichero abierto en la zona de edicin.

o Save: Puede activarse tambin pulsando simultneamente las teclas Ctrl y S. Esta opcin guarda los cambios efectuados en el fichero que se encuentre activo en la zona de edicin. El fichero modificado es guardado en el directorio del proyecto donde se encuentra ubicado si bien la opcin Save As que se ver a continuacin permite guardarlo en otra ubicacin diferente. La opcin Save se encontrar desactivada si no se ha realizado cambio alguno en el fichero desde su ltimo guardado o bien si no hay ningn fichero abierto en la zona de edicin.

- 32 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. o Save As: Esta opcin guarda los cambios efectuados en el fichero que se encuentre activo en la zona de edicin en una ubicacin que se debe especificar. Esta opcin permite, por tanto, guardar el fichero en otra ubicacin diferente a la del directorio del proyecto as como renombrarlo. Una vez pulsada esta opcin se muestra un cuadro de dilogo en el que se solicita la confirmacin del guardado. Si se pulsa S (en cualquier otro caso se renuncia a guardar los cambios) aparecer entonces un segundo cuadro de dilogo en el que se puede especificar el directorio en el que se quiere guardar el fichero, la extensin que se le quiere dar y el nombre. La opcin Save As se encontrar desactivada si no hay ningn fichero abierto en la zona de edicin. A continuacin se muestran los cuadros de dilogo que aparecen al pulsar sobre esta opcin e intentar guardar un fichero de cabecera.

- 33 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. o Save All: Esta opcin guarda todos los cambios efectuados en los ficheros que se encuentren abiertos y que aparezcan en las pestaas en la parte superior de la zona de edicin. La opcin Save All se encontrar desactivada si no se ha realizado cambio alguno en los ficheros abiertos desde la ltima vez que se produjo el guardado de los mismos o bien si no hay ningn fichero abierto en la zona de edicin. Si alguno de ellos ha sido modificado, entonces la opcin Save All llevar a cabo el guardado de todos ellos a pesar de que algunos no haban sido modificados. La nica condicin, por tanto, para que la opcin se encuentre activa es que al menos uno de los ficheros abiertos haya sufrido cambios desde la ltima vez que se produjo su guardado. En tal caso el resultado de esta opcin ser el mismo que con la opcin Save.

o Export (to HTML): Esta opcin permite pasar a formato HTML (HyperText Markup Language) el fichero que se muestre en la zona de edicin y cuyo nombre se visualizar en la pestaa activa en la parte superior de dicha zona. Esta funcin es de gran utilidad dado que HTML es el lenguaje de marcado predominante para la construccin de pginas Web. Es usado para describir la estructura y el contenido en forma de texto, as como para complementar el texto con objetos tales como imgenes. Adems de permitir la conversin a formato HTML tambin permite especificar la ubicacin donde se quiere guardar el fichero ya convertido. La opcin Export se encontrar desactivada si no hay ningn fichero abierto en la zona de edicin. A continuacin se muestra una captura del cuadro de dilogo que permite la conversin a formato HTML as como del fichero HTML resultante.

- 34 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

o Page Setup: Esta opcin permite configurar las opciones de pgina para la impresin y est muy relacionada con la opcin Print que se explicar en el siguiente punto. Esta opcin permite ajustar el papel a utilizar (tamao y origen), la orientacin (vertical u horizontal) y los mrgenes de pgina (izquierdo, derecho, superior e inferior). Adems, permite seleccionar la impresora a utilizar para la impresin y ajustar sus propiedades pulsando el botn Impresora. Por ltimo, se permite - 35 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. seleccionar para la impresin una impresora de la red (por defecto Red de Microsoft Windows) pulsando el botn Red dentro del cuadro que aparece al pulsar Impresora. La opcin Page Setup se encontrar desactivada si no hay ningn fichero abierto en la zona de edicin. A continuacin se muestran los cuadros que aparecen al pulsar la opcin Page Setup, al pulsar el botn Impresora y al pulsar el botn Red.

- 36 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. o Print: Puede activarse tambin pulsando simultneamente las teclas Ctrl y P. Esta opcin permite imprimir el fichero que aparece en la zona de edicin. Al pulsarla aparece el cuadro de impresin de Microsoft Windows donde se pueden especificar aspectos como el nmero de copias a imprimir, las preferencias de impresin, el intervalo de pginas a imprimir, etc. La opcin Print se encontrar desactivada si no hay ningn fichero abierto en la zona de edicin. A continuacin se muestra el cuadro de impresin que aparece al pulsar esta opcin.

o Print Preview: Esta opcin permite la previsualizacin de pgina antes de su impresin. Al pulsarla aparece una nueva ventana titulada

MinGWStudio Preview que permite visualizar el documento que se imprimira en caso de pulsar la opcin Print. Adems, esta ventana permite invocar a la opcin Print directamente por medio del botn Print situado en la parte superior de forma que no hay que cerrar la ventana y pulsar la opcin desde el men File. El botn Close cierra la ventana de previsualizacin mientras que los cuatro botones de direccin permiten (de izquierda a derecha) ir a la primera pgina, retroceder, avanzar e ir a la ltima pgina respectivamente. Por ltimo, la combo box situada en la parte derecha permite ajustar el zoom de visualizacin de pgina (desde

- 37 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. 10% hasta 200%). La opcin Print Preview se encontrar desactivada si no hay ningn fichero abierto en la zona de edicin. A continuacin se muestra una captura de la ventana MinGWStudio Preview que aparece al pulsar la opcin Print Preview.

o Recent Files: Esta opcin muestra los ficheros que han sido abiertos ms recientemente de forma que se facilita su rpida apertura sin necesidad de buscarlos en el directorio y abrirlos con la opcin Open. Los ficheros se muestran ordenados por orden de visualizacin (el ms reciente ser el nmero 1 y el ms antiguo ser el ltimo nmero). El mximo nmero de ficheros recientes que mostrar esta opcin es nueve. El fichero ms reciente ser denotado por el nombre y su extensin mientras que los ficheros restantes mostrarn tambin su ruta de acceso. A continuacin se muestra una captura de la opcin Recent Files.

- 38 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

o Recent Projects: Esta opcin presenta la misma funcionalidad que la opcin Recent Files en el punto anterior si bien esta opcin se refiere a proyectos en vez de a ficheros. Permite, por tanto, ver los proyectos que han sido abiertos ms recientemente. La nica diferencia que presenta respecto de la opcin Recent Files es que en este caso todos los proyectos recientes muestran la ruta de acceso adems del nombre del proyecto con su correspondiente extensin (*.msp o *.mdsp). A continuacin se muestra una captura de la opcin Recent Projects.

o Exit: Puede activarse tambin pulsando simultneamente las teclas Alt y X. Esta opcin cierra la aplicacin. En el caso de que exista un proyecto abierto y alguno o varios de sus ficheros presenten cambios entonces la aplicacin preguntar si se desean guardar cada uno de los ficheros que han sido modificados. A continuacin se muestra una captura del cuadro que presenta la aplicacin en caso de que un fichero presente cambios.

- 39 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. Edit: Consta de diecisis opciones como son Undo (Deshacer), Redo (Rehacer), Cut (Cortar), Copy (Copiar), Paste (Pegar), Select All (Seleccionar todo), Find (Buscar), Find Next (Buscar siguiente), Find Previous (Buscar anterior), Find in Files (Buscar en ficheros), Replace (Reemplazar), Match Brace (Encontrar llave), Go To (Ir a), Advanced (Avanzado), File Format (Formato de fichero) y Options (Opciones).

o Undo: Puede activarse tambin pulsando simultneamente las teclas Ctrl y Z. Esta opcin permite deshacer todos los pasos dados desde la ltima vez que se guard el fichero. Esta opcin se encuentra desactivada si no hay ningn proyecto abierto o si hay un proyecto abierto y ninguno de sus ficheros ha sido modificado. o Redo: Puede activarse tambin pulsando simultneamente las teclas Ctrl e Y. Esta opcin permite rehacer la ltima accin realizada as como acciones que se han deshecho por medio de la opcin Undo explicada anteriormente. Esta opcin se encuentra desactivada si no hay ningn proyecto abierto o si hay un proyecto abierto y ninguno de sus ficheros ha sido modificado y luego se ha pulsado la opcin Undo.

o Cut: Puede activarse tambin pulsando simultneamente las teclas Ctrl y X. Esta opcin se aplica sobre trozos de cdigo o texto, ahorrando gran trabajo cuando se quieren desplazar dichos trozos de un lugar a otro. El primer paso a la hora de cortar un texto es seleccionarlo para indicarle al programa sobre qu texto se quiere ejecutar la accin. Cuando se aplica esta opcin sobre un texto, ste desaparece del lugar de origen. Para depositarlo en otro sitio se utiliza la opcin Paste que se explicar posteriormente. Una vez que un texto se ha cortado permanece en la memoria mientras no se copie o corte otra cosa. Esta opcin se encuentra desactivada si no hay ningn proyecto abierto o si hay un proyecto abierto y no ha sido seleccionado texto alguno. - 40 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. o Copy: Puede activarse tambin pulsando simultneamente las teclas Ctrl y C. Esta opcin, al igual que la anterior, se aplica sobre trozos de cdigo o texto y permite repetir sentencias de cdigo, bucles, etc. Al igual que en el caso anterior, el primer paso es seleccionar el texto a copiar. El texto copiado no desaparece del lugar de origen, pero el ordenador ha creado una copia de l. Para depositarlo en otro sitio se utiliza la opcin Paste que se explicar posteriormente. Una vez que un texto se ha copiado permanece en la memoria mientras no se copie o corte otra cosa. As, si se necesita volver a pegar ese mismo texto no hace falta volver a copiar. Esta opcin se encuentra desactivada si no hay ningn proyecto abierto o si hay un proyecto abierto y no ha sido seleccionado texto alguno.

o Paste: Puede activarse tambin pulsando simultneamente las teclas Ctrl y V. Esta opcin permite pegar el texto copiado o cortado y del cual el ordenador ha creado una copia que permanece en la memoria mientras no se copie o corte otra cosa. Esta opcin se encuentra desactivada si no hay ningn proyecto abierto o si hay un proyecto abierto y no ha sido copiado o cortado texto alguno.

o Select All: Puede activarse tambin pulsando simultneamente las teclas Ctrl y A. Esta opcin permite seleccionar todo el texto del fichero que se encuentre abierto en la zona de edicin. Esta opcin se encuentra desactivada si no hay ningn fichero en la zona de edicin.

o Find: Puede activarse tambin pulsando simultneamente las teclas Ctrl y F. Esta opcin permite buscar palabras y frases en el fichero que se encuentre abierto en la zona de edicin. A continuacin se muestra una captura del cuadro que aparece al pulsar sobre esta opcin y que ayudar en la explicacin.

- 41 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

En el cuadro de texto Find what hay que escribir la palabra o frase a buscar. La caja Direction permite seleccionar si la bsqueda a realizar va a ser de abajo a arriba desde la posicin actual (seleccionada opcin Up) o de arriba abajo (seleccionada opcin Down) en el texto. La checkbox Match whole word only permite especificar que solo se presenten los resultados de palabras que coincidan exactamente con la palabra a buscar y que no est contenida o sea parte de otra. La checkbox Match case permite presentar resultados independientemente de si stos estn en maysculas o en minsculas. Por ltimo, la checkbox Wrap around, que por defecto se encuentra activada, permite reanudar la bsqueda desde el principio una vez que sta ha llegado al final. Acta, por tanto, de forma circular. Una vez que se ha introducido la palabra o frase a buscar y se han activado las opciones que interesen se pulsa el botn Find Next que sombrear en el propio texto de la zona de edicin el resultado de la bsqueda (match). Si el resultado no es el que se buscaba se pulsar de nuevo el botn Find Next para reanudarla y as sucesivamente hasta encontrar el resultado esperado. La opcin Find se encuentra desactivada si no hay ningn fichero en la zona de edicin. o Find Next: Puede activarse tambin pulsando la tecla F3. Esta opcin permite ver el siguiente resultado de la bsqueda efectuada con la opcin Find. Su funcionamiento es igual al del botn Find Next que aparece en el cuadro de bsqueda de la opcin Find explicado anteriormente. En caso de que se pulse sobre la opcin Find Next sin haber iniciado una bsqueda se ejecutar la opcin Find. La opcin Find Next se encuentra desactivada si no hay ningn fichero en la zona de edicin.

- 42 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. o Find Previous: Puede activarse tambin pulsando simultneamente las teclas Shift y F3. Esta opcin permite ver el resultado anterior de la bsqueda efectuada con la opcin Find. Su funcionamiento es igual al de la opcin Find Next con la diferencia de que se muestra el resultado anterior en vez del resultado siguiente. En caso de que se pulse sobre la opcin Find Previous sin haber iniciado una bsqueda se ejecutar la opcin Find. La opcin Find Previous se encuentra desactivada si no hay ningn fichero en la zona de edicin.

o Find in Files: Esta opcin permite buscar palabras o frases en ficheros con extensiones soportadas por MinGW Developer Studio y que se encuentren en cualquier directorio. Para ello se muestra un cuadro de bsqueda que permite especificar la palabra o frase a buscar, la extensin de los ficheros en los que se quiere buscar (*.c, *.cc, *.cpp, *.cxx, *.h, *.hh, *.hpp, *.hxx, *.rc, *.rc2, *.def, *.htm, *.html, *.txt, *.*) y el directorio en el que se quiere buscar. Adems, muestra tres checkboxes que permiten especificar propiedades de bsqueda. Las checkboxes Match whole Word only y Match case ya han sido explicadas en la opcin Find y sus funciones son las mismas. La checkbox Look in subfolders est activada por defecto y permite realizar la bsqueda en subcarpetas del directorio especificado en la pestaa In folder. El resultado de la bsqueda ser mostrado en la pestaa Find in Files de la zona de salida. A continuacin se muestra una captura del cuadro de bsqueda de la opcin Find in Files.

- 43 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. o Replace: Puede activarse tambin pulsando simultneamente las teclas Ctrl y H. Esta opcin permite reemplazar una palabra o frase por otra que se debe especificar. La palabra o frase a reemplazar se escribe en el cuadro de texto Find what mientras que la palabra o frase que la reemplace se escribe en el cuadro Replace with. Las tres checkboxes y sus funciones ya han sido explicadas en la opcin Find mientras que el cuadro Replace in permite realizar el reemplazo en todo el fichero (opcin Whole file, que est activada por defecto) o solo en una parte de l que debe ser seleccionada (opcin Selection). El botn Find Next ya ha sido explicado anteriormente, mientras que el botn Replace ejecuta un nico reemplazo frente a Replace All que reemplaza todos los resultados de la bsqueda simultneamente. La opcin Replace se encuentra desactivada si no hay ningn fichero en la zona de edicin.

o Match Brace: Puede activarse tambin pulsando simultneamente las teclas Ctrl y B. Esta opcin permite localizar la llave inicial ({) o final (}) de un bloque de cdigo. Esto es especialmente til en programas con un gran nmero de lneas de cdigo para localizar el comienzo o el fin de funciones, bucles (for, while, do-while), bloques if-else, switch, etc. Para localizar el inicio/fin de un bloque de cdigo hay que situarse en la llave final (})/inicial ({) y ejecutar la opcin. La opcin Match brace se encuentra desactivada si no hay ningn fichero en la zona de edicin.

- 44 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. o Go To: Puede activarse tambin pulsando simultneamente las teclas Ctrl y G. Esta opcin permite ir directamente a una lnea de cdigo determinada que se debe especificar en un cuadro de dilogo que aparece al ejecutar la opcin. La opcin Go to se encuentra desactivada si no hay ningn fichero en la zona de edicin. A continuacin se muestra una captura del cuadro que aparece al ejecutar la opcin Go to.

o Advanced: Esta opcin permite realizar cuatro acciones diferentes sobre un fragmento de cdigo que se debe seleccionar. La primera opcin se llama Make Selection C style comment y convierte el fragmento seleccionado a estilo de comentario en lenguaje de programacin C, es decir, el fragmento precedido de /* y con */ al final. Esta opcin tambin puede ejecutarse pulsando simultneamente las teclas Ctrl e Insert. La segunda opcin se llama Make Selection C++ style comment y convierte el fragmento seleccionado a estilo de comentario en lenguaje de programacin C++, es decir, el fragmento con // en cada lnea. Esta opcin tambin puede ejecutarse pulsando simultneamente las teclas Ctrl, Shift e Insert. La tercera opcin se llama Make Selection Uppercase y convierte el fragmento seleccionado a maysculas. Esta opcin tambin puede ejecutarse pulsando simultneamente las teclas Ctrl, Shift y U. La ltima opcin se llama Make Selection Lowercase y convierte el fragmento seleccionado a minsculas. Esta opcin tambin puede ejecutarse pulsando simultneamente las teclas Ctrl y U. La opcin Advanced se encuentra desactivada si no hay ningn fichero en la zona de edicin. A continuacin se muestra una captura de las acciones posibles de la opcin Advanced.

- 45 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

o File Format: Esta opcin permite codificar el fichero que se encuentre en la zona de edicin de tal forma que sea portable a Windows, UNIX y Macintosh por medio de tres opciones especficas: Windows (CR/LF), UNIX (LF) y Macintosh (CR). Al editar ficheros en MinGW Developer Studio y guardarlos, las lneas se terminan con la combinacin de caracteres CR/LF, que significan retorno de carro/avance o fin de lnea. Esto se produce en sistemas Windows mientras que en sistemas UNIX se terminan slo con avance de lnea. En sistemas Macintosh, por otro lado, terminan slo con retorno de carro. Esta opcin, por tanto, favorece la portabilidad de ficheros entre los tres tipos de sistemas ms utilizados. La opcin File Format se encuentra desactivada si no hay ningn fichero en la zona de edicin.

o Options: Esta opcin permite modificar una serie de parmetros agrupados en ocho categoras: Project (Proyecto), Editor (Editor), Tabs (Tabulaciones), Compiler (Compilador), Build (Construir), Directories (Directorios), Help (Ayuda) y Format (Formato).

La categora Project permite cargar el ltimo proyecto abierto cuando se inicia el programa y cargar los documentos asociados a un proyecto cuando ste se abre.

- 46 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. La categora Editor permite modificar opciones de guardado de ficheros, opciones de autocompletado, opciones de pestaas en la visualizacin de ficheros y opciones de impresin.

La categora Tabs permite modificar parmetros relativos a las tabulaciones del texto de la zona de edicin. Se puede modificar el espaciado, el sangrado, insertar espacios, mantener tabulaciones, realizar un sangrado automtico, etc.

La categora Compiler permite especificar el directorio que utiliza el programa (MinGW path) y donde se encuentran los ficheros de librera (carpeta lib), los ficheros de include (carpeta include), los ficheros de recursos (carpeta include), etc.

La categora Build permite guardar un fichero automticamente antes de ser compilado y ejecutado cuando se pulsa la opcin Build. Adems, permite escribir siempre las dependencias cuando se escribe un fichero Makefile. Este fichero se compone de un conjunto de dependencias y reglas. Una dependencia tiene un fichero objetivo (target), que es el fichero a crear, y un conjunto de ficheros fuente de los cuales depende el fichero objetivo. Una regla describe cmo crear el fichero objetivo a partir de los ficheros de los que ste depende.

La categora Directories muestra los directorios donde se encuentran los ficheros de include (Include files), los ficheros de librera (Library files) y los ficheros de recursos (Resource files). Adems, permite modificar estos directorios mediante una serie de botones que permiten eliminar el directorio actual y buscar manualmente el directorio nuevo.

La categora Help muestra los directorios donde se encuentran los ficheros de ayuda de win32 y de wxWindows as como modificar dichos

- 47 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. directorios. Adems, permite especificar que las sugerencias (Call tips) se muestren segn el estndar ANSI C y la API de Windows (WinAPI).

La categora Format permite modificar opciones de estilo de texto en la zona de edicin y en la zona de salida. Se permite modificar el tamao del texto, la fuente, el color (del texto, del fondo, del sombreado de errores,) y el estilo de fuente (negrita, cursiva y subrayado). Estos cambios pueden visualizarse en el propio cuadro de opciones gracias a la ventana Sample que muestra el resultado de los cambios en caso de que stos se lleven a cabo.

A continuacin se muestra una captura del cuadro Options en la categora Format.

- 48 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. View: Consta de once opciones como son Toolbar (Barra de herramientas), Status Bar (Barra de estado), Toggle Current Fold (Ocultar bloque actual), Toggle All Folds (Ocultar todos los bloques), End Of Line (Fin de Lnea), Line Numbers (Nmeros de Lnea), Indentation Guides (Guas de sangrado), Margin (Margen), Fold Margin (Margen de bloque), Project Window (Ventana de Proyecto) y Output Window (Ventana de Salida). o Toolbar: Esta opcin permite mostrar (opcin activada) o esconder (opcin desactivada) la barra de herramientas, que se explicar en el apartado 4.2.2 Barra de herramientas. o Status Bar: Esta opcin permite mostrar (opcin activada) o esconder (opcin desactivada) la barra de estado. Esta barra est situada debajo de la zona de salida y est dividida en dos zonas diferenciadas.

Una zona muy amplia situada en el lado izquierdo muestra informacin acerca de la accin que realiza cada una de las opciones de los mens cuando el cursor se encuentra situado sobre cada opcin. La segunda zona est situada en el lado derecho y muestra el nmero de lnea y columna en el que se encuentra el cursor en la zona de edicin as como el modo de teclado activo (INS/OVR) (insercin/sobreescritura).

o Toggle Current Fold: Cuando se explic la zona de edicin se deca que se pueden ocultar bloques de cdigo independientes como declaraciones de estructuras, funciones, bloques if-else, bloques while o do-while, bloques for o incluso la propia funcin principal (main). Pues bien, la opcin Toggle Current Fold permite ocultar o mostrar estos bloques de cdigo independientes. Para ello hay que situar el cursor al comienzo del bloque (a la derecha del smbolo de minimizar/maximizar) y pulsar sobre esta opcin. Si el bloque est oculto se mostrar, mientras que si se

- 49 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. estaba mostrando se ocultar. Esta opcin se encuentra desactivada si no hay ningn fichero en la zona de edicin.

o Toggle All Folds: Esta opcin permite ocultar todos los bloques de cdigo independientes tal y como se ha explicado en la opcin anterior. La nica diferencia que presenta respecto de dicha opcin es que no influye la situacin del cursor a la hora de ejecutar la accin puesto que todos los bloques sern ocultados/mostrados. Esta opcin se encuentra

desactivada si no hay ningn fichero en la zona de edicin.

o End of Line: Esta opcin permite visualizar el fin o avance de lnea (LF) y el retorno de carro (CR) en cada una de las lneas del fichero que se encuentra en la zona de edicin. El avance de lnea y el retorno de carro ya fueron explicados en la opcin File Format del men Edit.

o Line Numbers: Esta opcin permite mostrar (opcin activada) o esconder (opcin desactivada) los nmeros de lnea que se encuentran a la izquierda del fichero cargado en la zona de edicin.

o Indentation Guides: Esta opcin permite mostrar (opcin activada) o esconder (opcin desactivada) los puntos suspensivos azules situados en cada tabulacin que ayudan a ordenar el cdigo para facilitar su seguimiento y a localizar el inicio y fin de bloques if-else, do-while, while, bucles for, etc.

o Margin: Esta opcin permite mostrar (opcin activada) o esconder (opcin desactivada) el margen situado entre los nmeros de lnea y el cdigo del fichero cargado en la zona de edicin.

o Fold Margin: Esta opcin permite mostrar (opcin activada) o esconder (opcin desactivada) el margen y la llave de seguimiento situados en los bloques de cdigo independientes ya explicados. El margen y la llave de

- 50 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. seguimiento permiten una rpida localizacin de dichos bloques por lo que no es recomendable su ocultacin.

o Project Window: Puede activarse tambin pulsando simultneamente las teclas Alt y 0. Esta opcin permite mostrar (opcin activada) o esconder (opcin desactivada) la zona de workspace.

o Output Window: Puede activarse tambin pulsando simultneamente las teclas Alt y 2. Esta opcin permite mostrar (opcin activada) o esconder (opcin desactivada) la zona de salida.

- 51 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. Project: Consta de siete opciones como son New Project (Nuevo Proyecto), Open Project (Abrir Proyecto), Save Project (Guardar Proyecto), Close Project (Cerrar

Proyecto), Add To Project (Aadir al Proyecto), Settings (Ajustes) y Export Makefile (Exportar fichero Makefile).

o New Project: Puede activarse tambin pulsando simultneamente las teclas Ctrl y N. Esta opcin presenta el mismo comportamiento que la opcin New del men File ya explicado y se encuentra activada si no hay ningn proyecto en la zona de workspace.

o Open Project: Esta opcin permite abrir un abrir un fichero de proyecto MinGWStudio Project Files (extensin *.msp o *mdsp). Esta opcin se encuentra activada si no hay ningn proyecto en la zona de workspace. A continuacin se muestra una captura de la ventana que aparece al pulsar la opcin y que permite seleccionar el proyecto a abrir.

o Save Project: Esta opcin permite guardar los cambios realizados en la configuracin del proyecto mediante la opcin Settings que se explicar posteriormente y que forma parte de este men. Esta opcin no guarda cambios realizados en los ficheros del proyecto.

- 52 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. o Close Project: Esta opcin cierra el proyecto que se encuentre abierto en la zona de workspace. Antes de cerrar el proyecto aparece un cuadro de confirmacin de cierre de proyecto. Adems, en caso de que alguno de los ficheros del proyecto haya sido modificado aparecer un segundo cuadro que preguntar acerca de la posibilidad de guardar los cambios realizados.

o Add To Project: Esta opcin permite aadir al proyecto ficheros de proyecto u otro tipo de ficheros. Para ello, existen dos opciones diferentes que se muestran en un submen: New y Files. New presenta el mismo comportamiento que la opcin New Project de este mismo men y que la opcin New del men File. Por otra parte, el submen Files permite aadir ficheros al proyecto. Estos ficheros pueden tener cualquiera de las extensiones soportadas por el programa y que fueron explicadas en la opcin Open del men File.

o Settings: Esta opcin permite establecer una serie de propiedades del proyecto agrupadas en cuatro categoras: General (General), Compile (Compilar), Link (Enlazar) y Resources (Recursos).

La categora General permite escribir datos relativos al directorio de trabajo, a los argumentos del programa y a los directorios de ficheros de salida (tanto intermedios como de salida).

La

categora

Compile

permite

escribir

definiciones

del

preprocesador, opciones extra de compilacin y directorios adicionales de include. Adems, permite especificar opciones adicionales relativas a warnings, informacin de Debugging (depuracin), niveles de optimizacin y lenguaje C++ (informacin en tiempo de ejecucin y gestin de excepciones). A continuacin se muestra una captura del cuadro Project Settings en la categora General, que es la que aparece por defecto al pulsar sobre la opcin Settings.

- 53 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

o Export Makefile: Esta opcin crea un fichero Makefile a partir del fichero que se encuentre abierto en la zona de edicin. El fichero Makefile ya fue explicado al detallar la categora Build del submen Options del men Edit. El fichero Makefile aparecer en el mismo directorio del proyecto una vez que se pulsa esta opcin. A continuacin se muestra una captura del fichero Makefile creado a partir de un fichero.

- 54 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

- 55 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. Build: Consta de diez opciones como son Compile (Compilar), Build (Construir), Rebuild All (Reconstruir todo), Build All Configurations (Construir todas las configuraciones), Build and Execute (Construir y Ejecutar), Clean (Limpiar), Clean All Configurations (Limpiar todas las configuraciones), Stop (Parar), Execute (Ejecutar) y Set Active activa).

Configuration

(Establecer

configuracin

Ninguna de estas opciones estar activa a menos que haya un proyecto en la zona de workspace. En tal caso estarn todas las opciones activas menos Compile que requiere que haya un fichero abierto en la zona de edicin y Stop que slo estar activa durante el tiempo que se est llevando a cabo alguna de las acciones situadas por encima de ella en el men.

o Compile: Puede activarse tambin pulsando simultneamente las teclas Ctrl y F7. Esta opcin permite compilar el fichero que se encuentre abierto en la zona de edicin. Los mensajes que aparecen en la zona de salida ya se explicaron cuando se coment dicha zona.

o Build: Puede activarse tambin pulsando la tecla F7. Esta opcin permite compilar y enlazar el fichero que se encuentre abierto en la zona de edicin. Los mensajes que aparecen en la zona de salida ya se explicaron cuando se coment dicha zona.

o Rebuild All: Esta opcin compila y enlaza el fichero que se encuentre abierto en la zona de edicin tras eliminar los ficheros intermedios y ficheros de salida generados en anteriores compilaciones, enlazados y ejecuciones con la configuracin Debug que se explicar en el siguiente punto. Una vez ejecutada, se habr creado la carpeta Debug en el directorio del proyecto y contendr el fichero con extensin *.o generado tras la compilacin y el fichero con extensin *.exe generado tras el enlazado.

- 56 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. o Build All Configurations: Un proyecto de MinGW tiene configuraciones diferentes para las versiones de lanzamiento (Release) y de depuracin (Debug) del programa. Como sus nombres indican, la versin Debug se construye para depuracin mientras que la versin Release se construye para la distribucin final del programa en su lanzamiento. Si se crea un programa con MinGW, ste crea automticamente las configuraciones y establece opciones apropiadas por defecto y otros ajustes. Con las opciones por defecto:

La

configuracin

Debug

del

programa

es

compilada

con

informacin simblica de depuracin y sin optimizacin. La optimizacin complica la depuracin porque la relacin entre el cdigo fuente y las instrucciones generadas es de mayor complejidad. La configuracin Release del programa est completamente optimizada y no contiene informacin simblica de depuracin.

Una vez explicadas las dos configuraciones posibles, la opcin Build All Configurations crea ambas configuraciones en el directorio del proyecto. En dicho directorio aparecen, por tanto, la carpeta Debug y la carpeta Release con sus respectivas configuraciones. Si no se pulsa esta opcin, el compilador crear nicamente la versin Debug, que es la establecida por defecto.

o Build

and

Execute:

Esta

opcin

construye

el

programa

(ver

comportamiento de la opcin Build explicada anteriormente) y lo ejecuta. Por tanto, compila, enlaza y ejecuta el fichero que se encuentre abierto en la zona de edicin. En caso de que la compilacin o el enlazado presenten errores la ejecucin se suspender y aparecer un cuadro con el mensaje Cannot execute program (No se puede ejecutar el programa).

- 57 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. o Clean: Esta opcin borra los ficheros intermedios y los ficheros de salida generados con la configuracin Debug. Elimina, por tanto, la carpeta Debug del directorio del proyecto.

o Clean All Configurations: Esta opcin borra los ficheros intermedios y los ficheros de salida generados con las configuraciones Debug y Release. Elimina, por tanto, las carpetas Debug y Release del directorio del proyecto.

o Stop: Esta opcin permite parar la ejecucin de las acciones situadas por encima de ella en el men Build. Permite, por tanto, parar la ejecucin de las opciones Compile, Build, Rebuild All, Build All Configurations, Build and Execute, Clean y Clean All Configurations una vez que alguna de ellas haya sido pulsada y sin que haya terminado la ejecucin de la tarea que realiza.

o Execute: Puede activarse tambin pulsando simultneamente las teclas Ctrl y F5. Esta opcin ejecuta el programa (el fichero *.exe generado tras el enlazado en la carpeta Debug del directorio del proyecto). En caso de que el programa no haya sido compilado o enlazado, MinGW desplegar un cuadro informando acerca de la situacin (The target is out of date) y preguntando si se quiere realizar el compilado y enlazado. Este cuadro se muestra a continuacin.

o Set Active Configuration: Esta opcin permite seleccionar la configuracin (Debug o Release) de la versin del proyecto. La configuracin por defecto es Debug. Ambas configuraciones ya fueron explicadas anteriormente (ver opcin Build All Configurations). - 58 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

Debug: Este men ser explicado posteriormente en el apartado 5.1 Men Debug del captulo 5.

- 59 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. Tools: Consta de una nica opcin como es Resource Editor (Editor de recursos).

o Resource Editor: Puede activarse tambin pulsando simultneamente las teclas Ctrl y R. Esta opcin abre el editor de recursos. El editor de recursos permite crear ficheros resource script (extensin *.rc) de forma rpida e intuitiva. El editor cuenta con una interfaz grfica muy cmoda para disear el aspecto de ventanas, iconos, botones, barras de herramientas y otros muchos tipos de recursos grficos. Hay que recordar que los ficheros *.rc son empleados por GTK+ (GIMP Tool Kit) para tratar las opciones

predeterminadas de las aplicaciones. Con ellos se pueden cambiar los colores de cualquier control, poner un dibujo de fondo, etc. GTK+ es un grupo importante de bibliotecas o rutinas para desarrollar interfaces grficas de usuario (GUI) mediante C, C++ y otros lenguajes de programacin. A continuacin se muestra una captura del editor de recursos.

- 60 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. Window: Consta de ocho opciones como son Close (Cerrar), Close All (Cerrar todo), Cascade (Cascada), Tile Horizontally (Mosaico Horizontal), Tile Vertically (Mosaico Vertical), Arrange Icons (Ordenar iconos), Next (Siguiente) y Previous (Anterior). Adems, a continuacin de las ocho opciones muestra el nombre de los ficheros que se encuentran abiertos ordenados de arriba hacia abajo en orden de apertura (el primero ser el que se abri primero y el ltimo ser el que se abri ms recientemente). Adems, a la izquierda del fichero que se encuentre abierto en la zona de edicin se mostrar el smbolo indicando dicha situacin.

o Close: Esta opcin cierra el fichero que se encuentre abierto en la zona de edicin. Adems, elimina su correspondiente pestaa de la zona superior de la zona de edicin y la entrada con su nombre en el men Window.

o Close All: Esta opcin cierra todos los ficheros abiertos. Adems, elimina sus correspondientes pestaas de la zona superior de la zona de edicin y las entradas con sus nombres en el men Window. Como resultado, la zona de edicin queda en color gris al igual que al iniciar la aplicacin.

o Cascade: Esta opcin permite visualizar los ficheros abiertos en cascada dentro de la zona de edicin tal y como se muestra a continuacin.

- 61 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

o Tile Horizontally: Esta opcin permite visualizar los ficheros abiertos en mosaico horizontal dentro de la zona de edicin tal y como se muestra a continuacin.

- 62 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. o Tile Vertically: Esta opcin permite visualizar los ficheros abiertos en mosaico vertical dentro de la zona de edicin tal y como se muestra a continuacin.

o Arrange Icons: Esta opcin permite ordenar las ventanas que se encuentren minimizadas en la zona de edicin. Si varias ventanas se encuentran minimizadas en la zona de edicin tras visualizarlas mediante mosaico horizontal, vertical o cascada esta opcin permite ordenarlas en el mismo orden en que fueron minimizadas. De esta forma se sitan los iconos de las ventanas ordenados en la parte inferior izquierda de la zona de edicin. o Next: Esta opcin permite activar el fichero (la ventana) siguiente al que se encuentra activo en los modos de visualizacin en cascada, mosaico horizontal y mosaico vertical. De este modo, se activa la siguiente ventana y el cursor se sita donde se haba quedado la ltima vez que dicho fichero estuvo activo. Si nunca lo estuvo, se situar al comienzo del fichero.

- 63 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. o Previous: Esta opcin permite activar el fichero (la ventana) anterior al que se encuentra activo en los modos de visualizacin en cascada, mosaico horizontal y mosaico vertical. De este modo, se activa la ventana anterior y el cursor se sita donde se haba quedado la ltima vez que dicho fichero estuvo activo. Si nunca lo estuvo, se situar al comienzo del fichero.

- 64 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio. Help (About MinGW Developer Studio): Esta opcin abre un cuadro de dilogo con crditos acerca de la aplicacin (versin, fecha de creacin y software que se emplea GNU GCC, MINGW, wxWindows, wxStyledTextCtrl, Scintilla and SciTE y ResEd con una breve explicacin de cada uno y un enlace web).

- 65 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

4.2.2. Barra de Herramientas.La barra de herramientas es un sistema cmodo y rpido para ejecutar directamente cualquier opcin de los mens explicados en el apartado anterior. Consta de veintisiete iconos que permiten realizar acciones como crear un nuevo proyecto, abrir un fichero, compilar un programa, depurar un programa, solicitar ayuda, etc. Cada uno de los iconos ser explicado a continuacin mediante una tabla que muestra la equivalencia entre los iconos de la barra de herramientas y la opcin del men que es ejecutada cuando se pulsa el icono.

Icono

Accin ejecutadaFile New (Ctrl+N) File Open (Ctrl+O) File Save (Ctrl+S) File Save All Edit Cut (Ctrl+X) Edit Copy (Ctrl+C) Edit Paste (Ctrl+V) Edit Undo (Ctrl+Z) Edit Redo (Ctrl+Y) View Project Window (Alt+0) View Output Window (Alt+2) Previous (Alt+Left Arrow) Next (Alt+Right Arrow) Build Compile (Ctrl+F7) Build Build (F7) Build Stop Build Execute (Ctrl+F5) Debug Go (F5) Debug Toggle Breakpoint (F9) Debug Step Into (F11) Debug Step Over (F10) Debug Step Out of Function (Shift+F11) Debug Run to Cursor (Ctrl+F10) Debug QuickWatch (Shift+F9) File Print Preview File Print (Ctrl+P) Help About MinGW Developer Studio

- 66 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

Captulo

5

Depuracin de Programas (Debugging)

- 67 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

CAPTULO 5. Depuracin de programas (Debugging).Debugging es el nombre que recibe el proceso de eliminacin y limpieza de bugs (errores) de los programas. Para realizar la depuracin de programas se emplea el debugger, que es una herramienta diseada para revisar las instrucciones de un programa paso a paso y examinar su estado en cada paso.

El Debugging comienza en cuanto el usuario se empieza a preguntar las razones por las que su programa no produce los resultados deseados. La primera tarea que se debe realizar es asegurarse de que el cdigo C/C++ compila y enlaza sin errores. Si se produce algn error, el cdigo debe ser modificado de tal manera que no ocurra.

La segunda tarea que se debe realizar es examinar el cdigo y comparar los resultados deseados con los que se estn obteniendo. Sin embargo, en muchas ocasiones sucede que tras realizar un examen profundo del cdigo sigue sin aparecer el error. Es en estos casos en los que es necesario emplear el debugger, que puede realizar las siguientes acciones: Recorrer las sentencias del programa paso a paso, bien over (por encima de) o into (dentro de) las funciones. En el primer caso (over) se omite el recorrido dentro de las funciones mientras que en el segundo caso se recorren las sentencias de las funciones y se vuelve a la funcin principal.

Ejecutar el programa hasta un cierto punto (bien hasta el cursor o hasta un breakpoint) y luego detener la ejecucin. En el primer caso (cursor) se ejecuta el programa hasta el lugar del cdigo donde est situado el cursor antes de comenzar el debugging. En el segundo caso (breakpoint) el programa se ejecutar hasta un breakpoint o punto de parada que se habr situado en el cdigo antes de comenzar el debugging. Mostrar los valores (o el contenido) de las variables en cada punto durante la ejecucin del programa.

- 68 -

Programacin Orientada a Objetos en C mediante MinGW Developer Studio.

5.1. Men Debug.El men Debug consta de nueve opciones como son Go (Iniciar), Stop Debugging (Detener la

depuracin), Step Into (Ejecutar dentro de