Pág. 1 07/04/2013
Para la compilación y ejecución del código que se realizará a lo largo de este curso vamos a utilizar el entorno de programación de la Herramienta Visual Studio 2010. El entorno de programación en C/C++ Visual Studio de Microsoft proporciona una serie de elementos que ayudan enormemente al desarrollo de aplicaciones en C++ para Windows, desde la creación automática del esqueleto básico de la aplicación, hasta la inclusión de nuevas clases, atributos, métodos y gestores de mensajes. Pág. 2 07/04/2013
Los entornos Visuales de programación nos permiten fácilmente crear, abrir o editar un proyecto. Un proyecto es un conjunto de ficheros de código fuente y/o cabeceras que forman parte de la aplicación. Para la creación de un proyecto basta pulsar el botón Nuevo/Proyecto. Pág. 3 07/04/2013
El proyecto a crear puede tener distinta naturaleza. En primer lugar el entorno de programación Visual Studio 2010 permite la implementación de código fuente en distintos lenguajes; C++,Visual Basic, C#, J#, etc... A su vez dentro de cada lenguaje podemos elegir distintas opciones de proyecto que tiene que ver con las librerías a incluir o con la plataforma hardware sobre la que se va a implementar el código fuente.. Así por ejemplo dentro del leguaje C++ podríamos construir un proyecto que incluyera las librerías MFC (Microsoft Foundation Classes), crear un proyecto para que funcione en una PDA (Personal Digital Assistant) o teléfono móvil (Smart Devices) o un simple proyecto que funcione en modo consola. Esta va a ser nuestra opción. Para ello seleccionamos lenguaje C++ win32, Aplicación de Consola win32 En el entorno Microsoft Visual Studio los proyectos se integran en soluciones. Es decir, una solución puede tener uno o varios proyectos. El menú también nos pide el nombre que queremos dar a nuestra solución. En nuestro caso será Solucion_1. Dentro de la solución debemos elegir el nombre del proyecto. En nuestro caso Proyecto_1. Pág. 4 07/04/2013
El asistente de proyectos de aplicaciones W32 nos guiará en la creación del proyecto. Pág. 5 07/04/2013
Entre las opciones del asistente de aplicaciones de Win32 elegimos un proyecto vacio. Pág. 6 07/04/2013
Ya tenemos creado el esqueleto del proyecto. Pág. 7 07/04/2013
En la figura observamos las carpetas creadas. Nótese que tenemos un fichero con extensión.sln. Este fichero es el identificador de la solución. Basta pincharlo dos veces para poder abrir la solución completa. Dentro de la carpeta Proyecto_1 tenemos asimismo un fichero con extensión *.vcxproj (Proyecto1.vcxproj). Este fichero identifica al proyecto. Pinchando dos veces sobre este fichero podemos abrir el proyecto en cuestión. Pág. 8 07/04/2013
Volvemos al entorno de Visual Studio para añadir un nuevo elemento que será el fichero (o los ficheros) con nuestro código fuente. Para ello invocamos las opciones Agregar/Nuevo Elemento. Pág. 9 07/04/2013
Para incorporar al proyecto un fichero que va a contener nuestro código fuente elegimos la extensión *.cpp (código/archivo c++). Pág. 10 07/04/2013
Ya tenemos el fichero incorporado. El siguiente paso es introducir el código, compilar yejecutar.. Pág. 11 07/04/2013
Vamos a escribir el siguiente código fuente. Sería nuestro primer proyecto creado con Visual Studio. Pág. 12 07/04/2013
Vamos a compilar este proyecto pulsando en Generar Solución. Pág. 13 07/04/2013
.Si todo ha ido bien y no se han producido errores obtendremos el resultado que se refleja en la figura. Pág. 14 07/04/2013
Si observamos ahora el árbol de directorios de la solución/proyecto observamos que han aparecido dos nuevas subcarpetas de Debug. La subcarpeta Debug dentro de la subcarpeta Proyecto_1 contiene distintos ficheros generados durante el proceso de compilación. La subcarpeta Debug del nivel superior dentro de la carpeta Solución_1 contiene el fichero ejecutable. No obstante si intentáramos ejecutar el fichero Proyecto1.exe la ventana de consola se nos cerraría a y no podríamos os comprobar oba si nuestro ejecutable e funciona. Este aspecto lo solucionaremos más adelante. Pág. 15 07/04/2013
Vamos ahora a compilar el proyecto y a la vez generar el ejecutable Para ello pulsamos en la opción Depurar/iniciar sin depurar Pág. 16 07/04/2013
El menú nos pregunta si queremos generar la solución (compilación) Pág. 17 07/04/2013
Si la compilación no ha tenido errores se ejecuta el programa. Desde el entorno de compilación la ventana de consola no se cierra y podemos ver la correcta ejecución del programa. Pág. 18 07/04/2013
Pág. 19 07/04/2013
Vamos a crear ahora un nuevo proyecto en la Solucion_1. Lo vamos a llamar Proyecto_2. Pág. 20 07/04/2013
Nótese que elegimos Agregar a Solución Pág. 21 07/04/2013
Seguimos el mismo proceso que en el caso del proyecto_1. Pág. 22 07/04/2013
Elegimos como antes un proyecto vacio. Pág. 23 07/04/2013
Ya hemos creado el esqueleto del segundo proyecto dentro de nuestra solución. El Proyecto_2 de momento no contiene ningún fichero fuente. Según se observa en la figura el Proyecto_1 de la nuestra solución aparece resaltado en negrita. Esto significa que es el proyecto de inicio de nuestra solución. A continuación lo que vamos a hacer es convertir en proyecto de inicio al Proyecto_2. Pág. 24 07/04/2013
Seleccionamos el Proyecto_2 y con el botón derecho del ratón pulsamos la opción Establecer como Proyecto de Inicio Pág. 25 07/04/2013
Ahora ya tenemos activado el Proyecto_2 como proyecto de inicio. Se nota que es el proyecto de inicio por estar resaltado en negrita el nombre del proyecto. Pág. 26 07/04/2013
Ahora añadimos un fichero de código fuente que llamaremos proyecto_2.cpp. Pág. 27 07/04/2013
Elegimos en el menú la opción coóigo/archivo c++). Pág. 28 07/04/2013
Después de crear el Proyecto_2 dentro de la solución tenemos una nueva carpeta dentro del árbol de directorios de la solución. Dentro de la carpeta Proyecto_2 debería aparecer el fichero Proyecto_2.cpp inicialmente vacio. Pág. 29 07/04/2013
Vamos a incorporar al Proyecto_2 el siguiente código fuente. Es esencialmente el mismo del Proyecto_1. Únicamente añadimos una parada al final del programa para evitar que se cierre la ventana de consola. Pág. 30 07/04/2013
Pulsamos la opción de Depurar/Iniciar sin Depurar para compilar y ejecutar el proyecto.. Pág. 31 07/04/2013
Ahora observamos la parada introducida en el código antes de que acabe Pág. 32 07/04/2013
En la subcarpeta debug de primer nivel dentro de Solución_1 tenemos los ejecutables de todos los proyectos de la solución. Pág. 33 07/04/2013
Ahora con el punto de parada establecido por código podemos ejecutar el programa pinchando dos veces sobre el ejecutable. Si hiciéramos lo mismo sobre el fichero proyecto_1.exe no veríamos nada ya que el programa no tiene ningún punto de parada. Pág. 34 07/04/2013
Pág. 35 07/04/2013
Vamos a crear un tercer proyecto sencillo dentro de la solución. Pág. 36 07/04/2013
Seguimos los pasos vistos anteriormente.. Pág. 37 07/04/2013
Creamos el proyecto vacio. Pág. 38 07/04/2013
Situándonos sobre el Proyecto_3 y con el botón derecho desplegamos un menú en el que seleccionamos este proyecto como proyecto de inicio de la solución. Pág. 39 07/04/2013
Una vez más situándonos sobre el menú de archivos de código fuente, seleccionamos Agregar Nuevo Elemento. Pág. 40 07/04/2013
Pág. 41 07/04/2013
Vamos a incorporar el código fuente de la figura en nuestro proyecto Pág. 42 07/04/2013
En la figura se observa el resultado de la ejecución del proyecto. Pág. 43 07/04/2013
Podemos ir directamente a la carpeta donde está el ejecutable y probarlo Nótese lo que hace el programa: recoge de línea de comandos los parámetros asociados al nombre del programa y los imprime Pág. 44 07/04/2013
Pág. 45 07/04/2013
Las herramientas Visuales nos proporcionan la capacidad de depuración de programas facilitando la tarea del programador en la búsqueda de posibles errores de compilación. Vamos a describir como utilizar esta facilidad de la herramienta Visual Studio 2010 a través de un ejemplo de código fuente sencillo en el cual nos creamos una estructura InfoFich y a través de un bucle while escribimos en sus campos. Pág. 46 07/04/2013
Nos creamos un proyecto vacio como hemos hecho en los ejemplos anteriores y a continuación introducimos el código fuente. Para poder depurar el programa nos tenemos que asegurar que la configuración del proyecto es Debug. Para ello con el raton pinchamos en Proyecto/Propiedades Pág. 47 07/04/2013
En la figura tenemos el proyecto creado introduciendo el código fuente anterior. Antes de iniciar el proceso de depuración hay que situar los llamados puntos de interrupción. Esto se hace pinchando una vez con el ratón en la barra vertical indicada por la flecha. En este momento aparecerá un circulo de color rojo indicando el punto de interrupción elegido. Si ahora nos colocamos con el ratón encima del circulo rojo y pinchamos con el botón derecho podemos eliminar o deshabilitar el punto de interrupción. Pág. 48 07/04/2013
Una vez elegido los Puntos de Interrupción podemos depurar el programa. Para ello, elegimos la opción Depurar/Iniciar Depuracion. Pág. 49 07/04/2013
Una vez que entramos en el modo depuración disponemos del menú que aparece en pantalla para ir ejecutando paso a paso nuestro programa. Para ello podemos elegir las teclas F10/F11. Podemos parar la depuración con la opción Detener Depuración Pág. 50 07/04/2013
En modo depuración podemos acceder a los contenidos de las variables o estructura de forma sencilla permitiendo la localización rápida de potenciales errores del código. Pág. 51 07/04/2013
Pág. 52 07/04/2013
Si tenemos un código fuente con una cantidad considerable de líneas de código podemos perder mucho tiempo buscando las líneas de código de nuestro interés. Un facilidad de gran utilidad en Visual Studio es la posibilidad de marcar una línea. Esto se hace con la a combinación de teclas Ctrl+F2. Una vez marcada una línea podemos ir cientos de líneas más lejos con el scroll y una vez allí simplemente pulsando la tecla F2 podemos retornar a la línea marcada anteriormente. e e Podemos marcar varias líneas e ir saltado por el código desde una línea marcada a otra línea marcada saltándonos el resto del código. Pág. 53 07/04/2013
Pág. 54 07/04/2013
En la figura se indica como invocar la ayuda de la Herramienta Visual Studio 2010. para ello pulsamos el botón Ayuda/Buscar.. Pág. 55 07/04/2013
La ayuda es esencial a la hora de programar bien sea para encontrar una función, los parámetros de una función o para encontrar código fuente que se ajuste a nuestras necesidades. La ayuda de Visual Studio 2010 nos lleva al enlace: http://msdn.microsoft.com/query/dev10.query?appid=dev10idef1&l=es- q y pp ES&k=k(MSDNSTART)&rd=true En este enlace podemos realizar nuestra consulta En la figura proponemos a los alumnos introduzcan en el motor de búsqueda la frase Windows Sockets 2. Pág. 56 07/04/2013
Marcamos la opción de incluir los resultados en Ingles y seleccionamos el primer enlace: Windows Sockets 2 (Windows) Windows Sockets 2 (Winsock) enables programmers to create advanced Internet, intranet, and other network-capable applications to transmit application data... http://msdn.microsoft.com/en-us/library/ms740673(v=vs.85).aspx Pág. 57 07/04/2013
Ahora podemos disponer de todas las funciones y parámetros necesarios de la programación con la interfaz Windows Sockets en cualquier plataforma Windows y extrapolable a la interfaz Sockets de Berkeley en plataformas Unix. Pág. 58 07/04/2013
Esta ayuda Windows Sockets 2 nos será de gran utilidad para la siguiente Unidad Docente en la que aprenderemos a construir software de comunicaciones. Pág. 59 07/04/2013
Pinchando el enlace Winsock Reference llegamos a la siguiente página Pág. 60 07/04/2013
Si desde esta página pinchamos el enlace Winsock Functions pasamos a la siguiente página Pág. 61 07/04/2013
En esta página finalmente encontramos la descripción de la funciones del interfaz de programación de Windows Sockets. Esta ayuda nos permite conocer los parámetros de esta funciones, valores de retorno, códigos de error y ejemplos de uso. Pág. 62 07/04/2013
Pág. 63 07/04/2013 63
Partimos de un proyecto win32 vacio de consola creado como ya hemos hecho. Seleccionamos el nombre del proyecto según se indica en la figura. A continuación con el botón derecho del ratón elegimos propiedades. Pág. 64 07/04/2013 64
Dentro de las propiedades del proyecto elegimos la opción Vinculador/Entrada. Pág. 65 07/04/2013 65
En la opción Dependencias Adicionales escribimos ws2_32.lib como indica la figura.y pinchamos el botón Aceptar Ahora falta Incluir en el código fuente : #include <winsock2.h> De esta forma ya podemos construir aplicaciones con las funciones del API de Windows sockets Pág. 66 07/04/2013 66