You are on page 1of 45

31 de mayo de 2010

ELECTRICIDAD

Este Material ha sido preparado gracias a la colaboracin de los estudiantes del IUTEB PNFE seccin X-ELECT-2N 2010 de la Asignatura Automatizacin Industrial I. A ustedes, de verdad, un milln de Bendiciones.

Arturo J. Betancourt M. Ing Electrnico Mencin Computacin (UNEXPO- Puerto Ordaz) C.I.V. 111.966 Docente Instructor IUTEB - PNFE

Programando con Visual Studio C++ 2010 Inicio


Un lenguaje de programacin es un idioma artificial diseado para expresar cmputos y responder proposiciones que pueden ser llevadas a cabo por mquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento fsico y lgico de una mquina, para expresar algoritmos con precisin, o como modo de comunicacin humana. Est formado de un conjunto de smbolos y reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el cdigo fuente de un programa informtico se le llama programacin.

Figura 1. Cdigo fuente de un programa escrito en el lenguaje de programacin Java.

Programar en Windows no es difcil. De hecho, Microsoft Visual C + + 2010 hace que sea extraordinariamente fcil, como veremos a lo largo de este curso. Slo hay un obstculo en nuestro camino: Antes de llegar a los detalles de programacin de Windows, tenemos que estar completamente familiarizado con

31 de mayo de 2010

ELECTRICIDAD

las capacidades del lenguaje de programacin C + +, en particular los aspectos orientados a objetos del lenguaje. Tcnicas de programacin orientada a objetos son fundamentales para la eficacia de todas las herramientas que se proporcionan por Visual C + + para la programacin en Windows, as que es esencial que obtenga un buen conocimiento de ellos. En este captulo se ofrece una visin general de los conceptos ms importantes que se deben conocer para participar en la programacin de aplicaciones en C + +. Haremos un estudio sencillo y rpido sobre el Entorno de Desarrollo Integrado <the Integrated Development Environment (IDE)>. El cual es sencillo y, en general intuitivo en su funcionamiento, por lo que seremos capaces de aprender la mayor parte de l a medida que avancemos. La mejor manera de familiarizarse es trabajar a travs del proceso de creacin, compilacin y ejecucin de un programa sencillo. Por lo que al final de este 1er capitulo usted habr aprendido: Qu es Visual Studio Cules son los principales componentes de Visual C++ De que se compone el .NET Framework y cuales ventajas ofrece

Cmo se crea una solucin y un proyecto A cerca de la consola de programacin Como crear y editar un programa

Cmo compilar (compile), enlazar (link) y ejecutar (run) programas desde la consola de C + + Cmo crear y ejecutar programas bsicos de Windows. As que enciende tu PC, inicia Windows, carga el poderoso Visual C + + 2010, y comencemos el viaje hacia su aprendizaje (Feliz Navidad).
Microsoft Visual Studio

31 de mayo de 2010

ELECTRICIDAD

Es un entorno de desarrollo integrado (IDE, por sus siglas en ingls) para sistemas operativos Windows. Soporta varios lenguajes de programacin tales como Visual C++, Visual C#, Visual J#, ASP.NET y Visual Basic .NET, aunque actualmente se han desarrollado las extensiones necesarias para muchos otros. Visual Studio permite a los desarrolladores crear aplicaciones, sitios y aplicaciones web, as como servicios web en cualquier entorno que soporte la plataforma .NET (a partir de la versin net 2002). As, se pueden crear aplicaciones que se intercomuniquen entre estaciones de trabajo, pginas web y dispositivos mviles. Visual Studio 2010. Es la versin ms reciente de esta herramienta, acompaada por .NET Framework 4.0. La fecha del lanzamiento de la versin final ha sido el 12 de Abril de 2010. Hasta ahora, uno de los mayores logros de la versin 2010 de Visual Studio ha sido el de incluir las herramientas para desarrollo de aplicaciones para Windows 7, tales como herramientas para el desarrollo de la Taskbar (System.Windows.Shell 1) y la Ribbon Preview para WPF (ustedes pueden investigar sobre esto; ejemplo aereo).

The .NET Framework


El .NET Framework es un concepto central en Visual C + +, as como en todos los dems Productos de desarrollo de .NET de Microsoft. Se compone de dos elementos: el lenguaje comn de tiempo de ejecucin [Common Language Runtime(CLR)] en donde se ejecutan las aplicaciones, y un conjunto de libreras de la llamada .NET Framework Class Libraries el cual proporciona el cdigo de
1

Contiene Rutinas (type) que proporcionan el acceso controlado al cdigo de la funcionalidad mejorada de la barra de tareas de Windows 7. La barra de tareas de Windows 7 ofrece una funcionalidad mejorada que permite utilizar el botn de la barra de tareas para comunicar el estado de un usuario y exponer las tareas comunes cuando la ventana est minimizada o enmascarada. La funcionalidad expuesta por los type namespace System.Windows.Shell no est disponible en versiones de Windows anteriores a Windows 7. En Windows 7, algunas funciones pueden no estar disponibles dependiendo de la configuracin del usuario.

31 de mayo de 2010

ELECTRICIDAD

apoyo funcional que se requiere cuando se ejecuta un programa con la consola CLR, sin importar el lenguaje de programacin utilizado, as que .NET soporta programas escritos en C + +, C #, o cualquiera de las otros lenguajes de apoyo .NET Framework; por lo que todos utilizan las mismas bibliotecas .NET. Existen dos formas fundamentalmente diferentes de aplicaciones C + + que se pueden desarrollar con Visual C + + 2010. Puede escribir de forma nativa las aplicaciones que se ejecutan en el equipo. Estas aplicaciones se denominan programas nativos de C + +. Puede escribir programas nativo C + + en la versin de C + + que se define por la norma ISO / ANSI (Organizacin Internacional de Normalizacin / Instituto Nacional Americano para la Estandarizacin).Tambin puede escribir las aplicaciones para que se ejecuten bajo el control del CLR en una versin ampliada de C + + llamado C + + / CLI. Estos programas se denominan programas de CLR, o programas C + + / CLI. Sobre el .NET Framework existe una exposicin interesante en

http://es.wikipedia.org/wiki/.NET_framework .NET podra considerarse una respuesta de Microsoft al creciente mercado de los negocios en entornos Web, como competencia a la plataforma Java de Sun Microsystems y a los diversos framework de desarrollo web basados en PHP. Su propuesta es ofrecer una manera rpida y econmica, a la vez que, segura y robusta, para el desarrollo de aplicaciones o como la misma plataforma las denomina, soluciones permitiendo una integracin ms rpida y gil entre empresas y un acceso ms simple y universal a todo tipo de informacin desde cualquier tipo de dispositivo. La palabra inglesa framework define, en trminos generales, un conjunto estandarizado de conceptos, prcticas y criterios para enfocar un tipo de problemtica particular, que sirve como referencia para enfrentar y resolver nuevos problemas de ndole similar.

31 de mayo de 2010

ELECTRICIDAD

En el desarrollo de software, un framework es una estructura conceptual y tecnolgica de soporte definida, normalmente con artefactos o mdulos de software concretos, con base en la cual otro proyecto de software puede ser organizado y desarrollado. Tpicamente, puede incluir soporte de programas, libreras y un lenguaje interpretado entre otros programas para ayudar a desarrollar y unir los diferentes componentes de un proyecto. Representa una arquitectura de software que modela las relaciones generales de las entidades del dominio. Provee una estructura y una metodologa de trabajo la cual extiende o utiliza las aplicaciones del dominio. Consideraciones .Net Framework La plataforma .NET de Microsoft es un componente de software que puede ser aadido al sistema operativo Windows. Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacin de aplicaciones, y administra la ejecucin de los programas escritos especficamente con la plataforma. Esta solucin es el producto principal en la oferta de Microsoft, y pretende ser utilizada por la mayora de las aplicaciones creadas para la plataforma Windows. .NET Framework se incluye en: Windows Server 2008, Windows Vista y Windows 7. De igual manera, la versin actual de dicho componente puede ser instalada en Windows XP, y en la familia de sistemas operativos Windows Server 2003. Una versin "reducida" de .NET Framework est disponible para la plataforma Windows Mobile, incluyendo telfonos inteligentes. La norma (incluido en ECMA-335, ISO/IEC 23271) que define el conjunto de funciones que debe implementar la librera de clases base (BCL por sus siglas en ingls, tal vez el ms importante de los componentes de la plataforma), define un conjunto funcional mnimo que debe implementarse para que el marco de trabajo

31 de mayo de 2010

ELECTRICIDAD

sea soportado por un sistema operativo. Aunque Microsoft implement esta norma para su sistema operativo Windows, la publicacin de la norma abre la posibilidad de que sea implementada para cualquier otro sistema operativo existente o futuro, permitiendo que las aplicaciones corran sobre la plataforma independientemente del sistema operativo para el cual haya sido implementada. El Proyecto Mono emprendido por Ximian, pretende realizar la implementacin de la norma para varios sistemas operativos adicionales bajo el marco del cdigo abierto. Componentes .NET Framework Los principales componentes del marco de trabajo son:

El conjunto de lenguajes de programacin La Biblioteca de Clases Base o BCL El Entorno Comn de Ejecucin para Lenguajes o CLR por sus siglas en ingls.

Debido a la publicacin de la norma para la infraestructura comn de lenguajes (CLI por sus siglas en ingls), el desarrollo de lenguajes se facilita, por lo que el marco de trabajo .NET soporta ya ms de 20 lenguajes de programacin y es posible desarrollar cualquiera de los tipos de aplicaciones soportados en la plataforma con cualquiera de ellos, lo que elimina las diferencias que existan entre lo que era posible hacer con uno u otro lenguaje. Algunos de los lenguajes desarrollados para el marco de trabajo .NET son: C#, Visual Basic, Delphi (Object Pascal), C++, J#, Perl, Python, Fortran, Prolog (existen al menos dos implementaciones, el P# y el Prolog.NET), Cobol y PowerBuilder.

Common Language Runtime (CLR) Es el lenguaje insignia de .NET Framework (marco de trabajo .NET) y pretende
reunir las ventajas de lenguajes como C, C++ y Visual Basic en uno solo. El CLR es el verdadero ncleo del framework de .NET, entorno de ejecucin en el que se cargan las aplicaciones desarrolladas en los distintos lenguajes, ampliando el conjunto de servicios del sistema operativo (W2k y W2003).

31 de mayo de 2010

ELECTRICIDAD

La herramienta de desarrollo compila el cdigo fuente de cualquiera de los lenguajes soportados por .NET en un cdigo intermedio, el MSIL (Microsoft Intermediate Language), similar al BYTECODE de Java. Para generarlo, el compilador se basa en la especificacin CLS (Common Language Specification) que determina las reglas necesarias para crear el cdigo MSIL compatible con el CLR. Para ejecutarse se necesita un segundo paso, un compilador JIT (Just-In-Time) es el que genera el cdigo mquina real que se ejecuta en la plataforma del cliente. De esta forma se consigue con .NET independencia de la plataforma de hardware. La compilacin JIT la realiza el CLR a medida que el programa invoca mtodos. El cdigo ejecutable obtenido se almacena en la memoria cach del ordenador, siendo recompilado de nuevo slo en el caso de producirse algn cambio en el cdigo fuente. Caractersticas Es el encargado de proveer lo que se llama cdigo administrado, es decir, un entorno que provee servicios automticos al cdigo que se ejecuta. Los servicios son variados:

Cargador de clases: permite cargar en memoria las clases. Compilador MSIL a nativo: transforma cdigo intermedio de alto nivel independiente del hardware que lo ejecuta a cdigo de mquina propio del dispositivo que lo ejecuta.

Administrador de cdigo: coordina toda la operacin de los distintos subsistemas del Common Language Runtime (entorno comn de ejecucin).

Recolector de basura: elimina de memoria objetos no utilizados. Motor de seguridad: administra la seguridad del cdigo que se ejecuta. Motor de depuracin: permite hacer un seguimiento de la ejecucin del cdigo aun cuando se utilicen lenguajes distintos.

31 de mayo de 2010

ELECTRICIDAD

Verificador de tipos (Types): controla que las variables de la aplicacin usen el rea de memoria que tienen asignado.

Administrador de excepciones: maneja los errores que se producen durante la ejecucin del cdigo.

Soporte de multiproceso (hilos): permite ejecutar cdigo en forma paralela. Empaquetador de COM: coordina la comunicacin con los componentes COM para que puedan ser usados por el .NET Framework.

Soporte de las libreras de Clases Base: interfaz con las clases base del .NET Framework. Esto quiere decir que existen tipos de estructuras como es la de java y la .NET

Figura 2. Estructura interna del entorno de ejecucin en lenguaje comn.

A largo plazo Microsoft pretende reemplazar el API 2 Win32 o Windows API con la plataforma .NET. Esto debido a que el API Win32 o Windows API fueron

Application Programming Interface. Es el conjunto de funciones y procedimientos (o mtodos, en la programacin orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstraccin. Usados generalmente en las bibliotecas. por ejemplo, para dibujar ventanas o iconos en la pantalla.

31 de mayo de 2010

ELECTRICIDAD

desarrollados sobre la marcha, careciendo de documentacin detallada, uniformidad y cohesin entre sus distintos componentes, provocando mltiples problemas en el desarrollo de aplicaciones para el sistema operativo Windows. La plataforma .NET pretende solventar la mayora de estos problemas proveyendo un conjunto nico y expandible con facilidad, de bloques interconectados, diseados de forma uniforme y bien documentados, que permitan a los desarrolladores tener a mano todo lo que necesitan para producir aplicaciones slidas.

Librera de Clases Base de .NET La librera de Clases Base (BCL por sus siglas en ingls) maneja la mayora de las operaciones bsicas que se encuentran involucradas en el desarrollo de aplicaciones, incluyendo entre otras:

Interaccin con los dispositivos perifricos Manejo de datos (ADO.NET) Administracin de memoria Cifrado de datos Transmisin y recepcin de datos por distintos medios (XML, TCP/IP) Administracin de componentes Web que corren tanto en el servidor como en el cliente (ASP.NET)

Manejo y administracin de excepciones Manejo del sistema de ventanas Herramientas de despliegue de grficos (GDI+) Herramientas de seguridad e integracin con la seguridad del sistema operativo

Manejo de tipos de datos unificado Interaccin con otras aplicaciones Manejo de cadenas de caracteres y expresiones regulares Operaciones aritmticas Manipulacin de fechas, zonas horarias y periodos de tiempo

31 de mayo de 2010

ELECTRICIDAD

10

Manejo de arreglos de datos y colecciones Manipulacin de archivos de imgenes Aleatoriedad Generacin de cdigo Manejo de idiomas Auto descripcin de cdigo Interaccin con el API Win32 o Windows API. Compilacin de cdigo

Esta funcionalidad se encuentra organizada por medio de espacios de nombres (namespace) jerrquicos.

Figura 3. Diagrama bsico de la librera de Clases Base.

Que significa Ensamblado Un ensamblado es un compilado EXE o DLL que contiene cdigo CIL 3 que se genera desde los diferentes lenguajes .NET, y que es ejecutado por el CLR. Puede contener una o varias clases al igual que uno o varios namespaces.
Common Intermediate Language (CIL, pronunciado "sil" o "kil") (anteriormente llamado Microsoft Intermediate Language o MSIL) es el lenguaje de programacin legible por humanos de ms bajo nivel en el Common Lenguage Infraestructure y en el .NET Framework.
3

31 de mayo de 2010

ELECTRICIDAD

11

Los ensamblados pueden tener diferentes decoradores que definen el entorno de ejecucin de los mismos COM+, DCOM, Remoting, etc.

Figura 4. Diagrama interno de un Ensamble .NET.

Escribir Aplicaciones C + + Es tener flexibilidad en los tipos de aplicaciones y componentes del programa que se pueden desarrollar con Visual C + + 2010. Como se ha sealado anteriormente en este captulo, tienes dos opciones bsicas para las aplicaciones de Windows: escribir cdigo que se ejecuta con el Entorno Comn de Ejecucin para Lenguajes CLR, y tambin puede escribir programas compilados directamente a cdigo de mquina, por lo tanto se ejecuta de forma nativa. Para las aplicaciones basadas en El CLR, se utilizan Formularios (forms) Windows como la base para la interfaz grfica de usuario proporcionada por las libreras .NET Framework. Estos formularios Windows Forms permiten el rpido desarrollo GUI 4, ya que monta la interfaz grfica de usuario a partir de componentes estndar y genera el cdigo de
4

Interfaz Grfica de Usuario

31 de mayo de 2010

ELECTRICIDAD

12

forma totalmente automtica. A continuacin, slo hay que personalizar el cdigo que ha generado para proporcionar la funcionalidad que se necesita. Existen varias maneras de ejecucin del cdigo nativo. Una posibilidad es utilizar el Microsoft Foundation Classes (MFC) para la programacin de la interfaz grfica de usuario con aplicaciones Windows. El MFC encapsula el sistema operativo Windows Application Programming Interface (API) con el uso de la interfaz grfica de usuario (GUI) para la creacin y el control, facilitando notablemente el proceso de desarrollo del programa. La API de Windows se origin mucho antes de que el lenguaje C + + apareciera en escena, por lo que no tiene ninguna de las caractersticas orientadas a objetos que se esperara si se hubiera escrito hoy, sin embargo, no estamos obligados a utilizar el MFC. Si desea un buen rendimiento, puede escribir su cdigo C + + para acceder a la API de Windows directamente; pero mi intencin es explicar lo ms que se pueda para que las dudas sean menos.

Figura 5. Opciones bsicas de C + + para el desarrollo de aplicaciones

31 de mayo de 2010

ELECTRICIDAD

13

El cdigo C + + que se ejecuta con el CLR 5 se describe como de C + +; ya que los datos y el cdigo es administrado por el CLR. En los programas de CLR, la liberacin de memoria que se ha asignado dinmicamente para almacenar datos se maneja de forma automtica, eliminando as una fuente comn de errores en las aplicaciones nativas de C + +. El cdigo C + + que se ejecuta fuera de CLR es a veces descrita por Microsoft como no administrado de C + +, debido a que el CLR no est involucrado en su ejecucin. Con C + + no administrado debe tener cuidado de todos los aspectos de la asignacin y liberacin de memoria durante la ejecucin de su programa, y tambin renunciar a la mayor seguridad proporcionada por el CLR. Tambin vers que al C ++ no administrado se le denomina C++ nativo, ya que compila directamente al cdigo de mquina nativo.

Aprendiendo la Programacin Windows Existen dos aspectos bsicos en aplicaciones interactivas de ejecucin en Windows: Se necesita el cdigo para crear la interfaz grfica de usuario (GUI) con los que interacta el usuario, y el cdigo para procesar estas interacciones para proporcionar la funcionalidad de la aplicacin. Visual C + + 2010 te ofrece una gran cantidad de asistencia en los aspectos de desarrollo de aplicaciones Windows. Como veremos ms adelante, se puede crear un programa de trabajo de Windows con una interfaz grfica de usuario sin necesidad de escribir el cdigo para forzar esa interface, ya que GUI lo ofrece. Todo el cdigo de base para crear la interfaz grfica de usuario se puede generar automticamente por Visual C + + 2010, sin embargo, es importante entender cmo funciona el cdigo generado automticamente porque esto aclara muchas dudas y adems permitir una comprensin global de C + +. Por esta razn, primero aprenderemos C + + - tanto el nativo de C + + y C + + / CLI - sin involucrarse en consideraciones de programacin de Windows.

Entorno Comn de Ejecucin para Lenguajes

31 de mayo de 2010

ELECTRICIDAD

14

Aprendiendo C + + Visual C + + soporta dos versiones definidas por dos estndares: El ISO/ANSI C + + estndar para implementar aplicaciones nativas (C + + no administrado). Este es soportado por la mayora de las plataformas computacionales. La norma ISO / ANSI estndar se define en el documento ISO / IEC 14882 publicado por el American National Standards Institute (ANSI). ISO / ANSI C + + es la versin consolidada del C + + que ha existido desde 1998 y es apoyado por los compiladores en la mayora de plataformas de hardware y sistemas operativos. Los programas que se escriben en la norma ISO / ANSI C + + pueden ser portables de un entorno de sistema a otro con facilidad, aunque las funciones de las libreras que un programa utiliza - en particular los relacionados con la construccin de una interfaz grfica de usuario - son un factor determinante de lo fcil o difcil que pueda ser. Esta plataforma se ha convertido en la primera eleccin de muchos profesionales desarrolladores de software por su amplio apoyo y por ser un lenguaje con potentes funciones. El C + +/CLI estndar, diseado especialmente para escribir programas en una extensin del anterior acoplada con las funciones CLR. C + + / CLI es una versin de C + + que extiende el estndar ISO / ANSI para C + + para apoyar mejor la Common Language Infrastructure (CLI) que se define por el estndar ECMA-355. El primer borrador de esta norma apareci en 2003 y fue desarrollado a partir de una especificacin tcnica inicial producida por Microsoft para apoyar la ejecucin de programas en C + + con el .NET Framework. Por supuesto, la normalizacin de la CLI y C + + / CLI aumenta enormemente el riesgo de las implementaciones en entornos que no sean Windows. Por todo lo descrito aqu se concluye que los CLR ofrecen ventajas sustanciales sobre el desarrollo nativo pero solo en aplicaciones Windows. Los programas sern ms seguros y no estarn propensos a los potenciales errores que se cometen cuando se utiliza toda la potencia de la norma ISO / ANSI C + +.

31 de mayo de 2010

ELECTRICIDAD

15

El CLR tambin elimina las incompatibilidades introducidas por distintos lenguajes de programacin de alto nivel, mediante la estandarizacin del entorno y por lo tanto permite mdulos escritos en C + + para ser combinado con mdulos escritos en otros lenguajes como C # o Visual Basic.

Aplicaciones Consola (Console Applications) As como el desarrollo de aplicaciones Windows, Visual C + + 2010 tambin le permite escribir, compilar y probar programas en C + + que no tienen ninguna de las funciones necesarias para los programas de Windows - es decir, las aplicaciones que son esencialmente basada en caracteres -, los programas de lnea de comandos. Estos programas se llaman aplicaciones consola en Visual C + + 2010, ya que te comunicas con ellos a travs del teclado y la pantalla en modo de caracteres y no grfico (ejemplo MS-DOS 6). Puede parecer que al estudiar aplicaciones de consola nos desviamos de los objetivos de este curso que es la programacin de C + + en Windows, pero esta es la mejor manera de enseanza demostrada a lo largo de diferentes cursos de programacin ya que su programacin es en la interfaz texto (Modo Texto). Naturalmente, cuando comencemos a utilizar la programacin utilizando la interfaz grfica de usuario habr una cobertura extensa Windows utilizando Microsoft Foundation Classes (MFC) en aplicaciones nativas de C + + y Windows Forms con el CLR. Hay dos tipos distintos de aplicaciones de consola que utilizaremos. Aplicaciones de consola Win32 que compila a cdigo nativo, para probar las capacidades de la norma ISO / ANSI C + +. Aplicaciones de consola CLR que es el trabajo con las caractersticas de C + + / CLI antes descritas.

MS-DOS (siglas de MicroSoft Disk Operating System, Sistema operativo de disco de Microsoft) es un sistema operativo perteneciente a la familia DOS comercializado por Microsoft para el IBM PC. MS-DOS se desarroll a partir de QDOS, Quick and Dirty Operating System, tambin conocido como 86-DOS. Su desarrollo inici oficialmente en 1981 y fue lanzado en 1982 como MS-DOS 1.0. Tuvo ocho versiones principales y alcanz gran difusin pero fue gradualmente reemplazado por sistemas operativos que ofrecan una interfaz grfica de usuario (GUI), en particular, por varias generaciones del sistema operativo Microsoft Windows. Microsoft detuvo su desarrollo en el ao 2000.

31 de mayo de 2010

ELECTRICIDAD

16

Conceptos para la Programacin Windows Nuestro enfoque de la programacin en Windows es realizar el manejo de puertos para aplicaciones en sistemas de control que Visual C + + 2010 proporcione (segn los lmites de nuestro estudio puerto paralelo, com y usb) hay Dios, veremos eso. Claro est, que para poder realizar verdaderos sistemas de control es importante tambin las interfaces de usuario como ratn, teclado como lo muestra la figura siguiente.

Figura 6. Estructura de la programacin orientada a eventos.

Principales Compontes del sistema de desarrollo integrado Visual C + + El Editor (Editor). El editor proporciona un entorno interactivo para que usted pueda crear y editar el cdigo fuente C + +.

31 de mayo de 2010

ELECTRICIDAD

17

El Compilador (Compiler). El compilador convierte el cdigo fuente a cdigo objeto, y detecta los errores y prepara los informes en el proceso de compilacin. El Vinculador (Linker). Combina los distintos mdulos generados por el compilador de archivos de cdigo fuente, aade los mdulos necesarios y las libreras de programas suministrados en el marco de C + +, y las unifica en un cdigo nico que se denomina archivo ejecutable. Las Libreras (Library). Una librera es simplemente una coleccin de rutinas preescritas que sirven de apoyo al programador en lenguaje C + +, proporcionando unidades estndares de produccin profesional de cdigo que usted puede incorporar en sus programas para llevar a cabo diversas operaciones.

Usando el IDE Todo desarrollo y ejecucin de programas se realizar desde dentro del IDE. Cuando se inicia Visual C + + 2010, aparecer un aviso como se muestra en la figura 7.

Figura 7. Inicio de Microsoft Visual Studio 2010.

31 de mayo de 2010

ELECTRICIDAD

18

Opciones de la barra Toolbar Options Puedes elegir qu barras de herramientas se muestran en la ventana de Visual C + +, haga clic en el rea de barra de herramientas. Un men emergente con una lista de barras de herramientas (Figura 8) aparece, y las barras de

herramientas que se muestran actualmente tienen marcas de verificacin al lado. No se necesita llenar la ventana de aplicacin con todas las barras de herramientas que piense se podra necesitar en algn momento. Algunas barras de herramientas aparecen automticamente cuando es

requerida, por lo que probablemente encontrar que las selecciones de barra de herramientas predeterminada son perfectamente adecuados la mayor parte del tiempo. A medida que desarrolla sus aplicaciones, de vez en cuando se podra pensar que sera ms conveniente tener acceso a las barras de herramientas que no se muestran. Puede cambiar el conjunto de barras de herramientas que son visibles cuando lo considere haciendo clic derecho en el rea de la barra de herramientas y seleccionando en el men contextual.

Barras de herramientas acoplables Dockable Toolbars Una barra de herramientas acoplable es la que puede arrastrar con el ratn para colocar en un lugar conveniente en la ventana. Cuando se coloca en cualquiera de los cuatro bordes de la solicitud, se dice que se acopla y es similar a las barras de herramientas que ves en la parte superior de la ventana de la aplicacin. En Visual Studio 2010 esa funcin no est habilitada por lo que debes ir al men tool Customize y con el botn Modify Selection puedes ubicarla en cualquier lado del editor o dejarla flotante y con el ratn colocarla en cualquier lugar.

31 de mayo de 2010

ELECTRICIDAD

19

Figura 9. Dockable Toolbars de Microsoft Visual Studio 2010.

Definicin de un proyecto El primer paso para escribir un programa de Visual C + + 2010 es crear un proyecto mediante la opcin de men File > New > Project en el men principal o puede presionar Ctrl + Shift + N, tambin puede simplemente hacer clic en Project ... o si desea abrir uno existente estos se muestran en el panel de Proyectos recientes al lado izquierdo de la ventana inicio. Adems de los archivos que contienen todos los que definen el cdigo y cualquier otro dato que va a constituir el programa, el proyecto de archivo XML en la carpeta del proyecto tambin registra las opciones del Visual C + + 2010 que est utilizando. Aunque no necesitas concentrarte tanto en estas cosas debido a que poco a poco iras adquiriendo ese conocimiento y te dars cuenta que IDE te lo indicar ya que cuenta con un sistema experto para las opciones que necesites y que ms utilices.

Crear un proyecto de aplicacin con la consola Win32 Ahora echemos un vistazo a la creacin de un proyecto para una aplicacin de consola. Primero, seleccione File > New > Project o utilice cualquiera de los mtodos descritos antes. Para que aparezca el cuadro de dilogo Nuevo proyecto, que se muestra en la Figura 10.

31 de mayo de 2010

ELECTRICIDAD

20

Figura 10. a.- acceso a y b.- Cuadro de dialogo nuevo proyecto.

En la ventana del lado izquierdo de la figura 10 b. seleccione Win32 y en el derecho Win32 Consola de aplicacin. Pero como puedes observar, antes de continuar debes darle un nombre a tu proyecto para que tengas acceso al editor de programas. En ese instante aparece una ventana mgica que te gua en la eleccin de los parmetros que deseas incluir de modo que tu programa contenga las herramientas que realmente necesitas, pues de lo contrario se abrir el proyecto de forma completa. (Pero ya hemos indicado que visual c ++ luego depura nuestro programa, el problema es la capacidad de tu maquina, que por su puesto posee limites en cuanto a su capacidad). Por ello es importante trabajar en el modo de temas estndar de Windows y as aprovechar ms recursos.

Figura 11. Ventana mgica (asistente) para la preparacin del proyecto.

31 de mayo de 2010

ELECTRICIDAD

21

En este cuadro de dilogo se explican los ajustes en vigor. Si hace clic en el botn Finalizar, el asistente crea todos los archivos de proyecto basado en esta aplicacin de consola Win32. En este caso, puede hacer clic en Configuracin de la aplicacin (Application Setting) en la parte izquierda y se mostrar la pgina Configuracin de la aplicacin del asistente como lo muestra la Figura 12.

Figura 12. Configuracin de la aplicacin (Application Setting).

La carpeta del proyecto tendr el nombre que proporcion, el nombre del proyecto y llevar asignada todos los archivos que componen la definicin del proyecto. Si no la ha cambiado, la carpeta de solucin tiene el mismo nombre que la carpeta del proyecto y contiene la carpeta del proyecto ms los archivos que definen el contenido de la solucin. Si utiliza el Explorador de Windows para inspeccionar el contenido de la carpeta de soluciones, ver que contiene tres archivos: Un archivo con la extensin .sln que registra informacin sobre los proyectos de la solucin. Un archivo con la extensin .suo que graba las opciones de usuario que se apliquen a la solucin. Un archivo con la extensin .ncb que registra datos acerca de Intellisense para la solucin. Intellisense es la instalacin que proporciona autocompletacin y la solicitud de cdigo en la ventana del editor Windows a medida que este se ingresa.

31 de mayo de 2010

ELECTRICIDAD

22

Si utilizas Windows Explorer para buscar en la carpeta del proyecto, observaras que hay siete archivos al principio, incluyendo un archivo con el nombre de ReadMe.txt que contiene un resumen del contenido de los archivos que se han creado para el proyecto. El proyecto que ha creado se abrir automticamente en Visual C + + 2010 con el panel de la izquierda como el de la figura 13. He aumentado el ancho de este panel para que pueda ver los nombres completos de las fichas. La ficha Solution Explorer presenta una visin de todos los proyectos en la solucin actual y los archivos que contiene - en este caso slo hay un proyecto de curso - se puede visualizar el contenido de cualquier archivo como una ficha adicional en el panel Editor simplemente haciendo doble clic en el nombre en la ficha Solution Explorer. En el campo Reemplazar con panel Editor puede cambiar instantneamente entre cualquiera de los archivos que han sido expuestos con slo hacer clic en la ficha correspondiente.

Figura 13. Solution Explorer

31 de mayo de 2010

ELECTRICIDAD

23

La pestaa Class View muestra las clases definidas en el proyecto y tambin muestra el contenido de cada clase. En este caso no hay ninguna clase en esta solicitud, por lo que la vista est vaca. Cuando hablamos de clases, se ver que puede utilizar la ficha Class View para desplazarse por el cdigo relativo a la definicin y aplicacin de todas sus clases de la aplicacin de manera rpida y sencilla. La ficha Property Manager muestra las propiedades que se han establecido para la depuracin y las versiones de lanzamiento de su proyecto. Estas versiones se explicarn a medida que avancemos en la prctica un poco ms adelante en este captulo. Puede cambiar cualquiera de las propiedades que aparecen al hacer clic derecho sobre una propiedad y seleccionando Propiedades en el men contextual, lo que muestra un cuadro de dilogo en el que puede establecer la propiedad del proyecto. Tambin puede pulsar Alt + F7 para mostrar el cuadro de dilogo Propiedades, en cualquier momento, tambin hablaremos de esto con ms detalle cuando entremos en la depuracin y las versiones de lanzamiento de un programa

Figura 14. Properties

31 de mayo de 2010

ELECTRICIDAD

24

Modificando el Cdigo Fuente El Asistente para aplicaciones Win32 genera un completo programa de consola que se puede compilar y ejecutar. Desafortunadamente, el programa no hace nada en su forma actual, por lo que para que sea un poco ms interesante que se necesita modificarlo. Si an no est visible en el panel Editor, haga clic en arrecho_01.cpp en la pestaa Solution Explorer. Explorer Panel. Este archivo es el archivo de cdigo fuente principal para el programa que genera el Asistente para aplicaciones y parece que se muestra en la Figura 15.

Figura 15. Explorer Panel

Si los nmeros de lnea no se muestran en su sistema, seleccione Tools > Options en el men principal para mostrar el cuadro de dilogo Opciones. Luego ubica una extensin llamada Text Editor, la extiende haciendo clic en la flecha del lado izquierdo y selecciona las opciones de C / C + +; luego en el subrbol en el panel derecho seleccione Line Number. Ahora se explicar, haciendo alusin a la ubicacin por lneas del cdigo que se muestra en la figura 15. lnea 1. //
arrecho_1.cpp : Defines the entry point for the console application.

Si no ha modificado los colores en el men de opciones del editor [Tools > Options], se muestra un texto en color verde debido a los dos slash continuos [//]. Eso indica que estamos en presencia de un comentario, el cual no tiene ninguna influencia sobre el programa. Solo lo utiliza el programador para explicar lo que supone hace el bloque o el cdigo de programa que escribi.

31 de mayo de 2010

ELECTRICIDAD

25

lnea 4. #include Es una directiva que agrega el contenido del archivo stdafx.h a este programa el cual en este caso es un encabezados precompilado el cual se usa para ahorrar tiempo de compilacin especialmente cuando: Siempre se usa un mismo cuerpo de cdigo que cambia con poca frecuencia El programa consta de mltiples mdulos, todos ellos incluyen un conjunto de archivos standard y las mismas opciones de compilacin, en este caso todos los archivos incluidos se pueden precompilar en uno solo. Stdafx.h es un archivo de inclusin para archivos estndar del sistema y para archivos de inclusin especficos del proyecto que se usan frecuentemente y que no suelen cambiarse. Esta es la manera estndar de agregar el contenido de archivos de cdigo fuente .h a una fuente de programa C + + con extensin .cpp. Lnea 7. Es la primera lnea del cdigo ejecutable en este archivo y el comienzo de la funcin _tmain (). Una funcin es simplemente una unidad con nombre de cdigo ejecutable en un programa en C + +, cada programa en C + + consta de al menos de una - y por lo general muchos ms funciones. Las lneas 8 y 10. Contienen una llave abierta y otra cerrada, respectivamente, que encierran todo el cdigo ejecutable en la funcin _tmain (). El cdigo ejecutable es, por tanto, slo el cdigo nico de la lnea 10 y todo esto lo que hace es terminar el programa. Ahora puede agregar las siguientes dos lneas de cdigo en la ventana del editor:
// arrecho_1.cpp : Defines the entry point for the console application. #include "stdafx.h" #include <iostream> //agregar esta linea int _tmain(int argc, _TCHAR* argv[]) { std::cout <<"Hello world!\n"; //agregar esta linea system("pause"); //presione una tecla para continuar... return 0; }

31 de mayo de 2010

ELECTRICIDAD

26

Las lneas sombreadas son las que agregar. Para la introduccin de cada nueva lnea, coloque el cursor al final del texto en la lnea anterior y pulse Enter para crear una lnea en blanco en el que puede introducir el nuevo cdigo. Asegrese de que sea exactamente como se muestra en el ejemplo anterior, de lo contrario, el programa no se puede compilar. La nueva lnea es una directiva # include que agrega el contenido de una de las libreras estndar de ISO / ANSI C + + para el archivo de origen. La librera <iostream> define las instalaciones para operaciones bsicas de entrada salida (I/O), y el cdigo que agreg en la segunda lnea escribe la salida a la lnea de comandos std:: cout, que es el nombre de la secuencia de salida estndar y escribe la cadena "Hola, mundo! \ n" en la pantalla o consala de Windows Win32.

Construccin de la Solucin Para generar la solucin, presione F7 o seleccin en el menu Build > Build Solution. Como alternativa, puede hacer clic en el botn de la barra de herramientas correspondiente a este elemento de men. Los botones de barra de herramientas para el men, en caso que no se muestre, haga clic derecho en el rea de barra de herramientas y seleccionando la barra de herramientas la opcin Build en la lista y este icono aparece. El programa deber compilar correctamente. Si hay errores, asegrese de que no incurri en un error al introducir el nuevo cdigo, a fin de comprobar las dos nuevas lneas con mucho cuidado.

Archivos Creados por construccin de una aplicacin de consola Win32 Despus de que el ejemplo se ha construido sin error, echa un vistazo en la carpeta de proyecto utilizando el Explorador de Windows para ver una nueva subcarpeta a la carpeta de soluciones llamada debug en la carpeta arrecho_1. Esta carpeta contiene el resultado de la construccin que acabas de hacer en el proyecto. Ten en cuenta que esta carpeta contiene tres archivos importantes. Adems del archivo .Exe, que es el programa en formato ejecutable, donde se enlaza todo el cdigo de modo que el programa ejecuto las instruccin en el

31 de mayo de 2010

ELECTRICIDAD

27

lenguaje que interpreta la mquina; el archivo .ilk que es usado por el enlazador cuando vuelve a generar su proyecto. Permite al vinculador vincular

progresivamente los ficheros objeto producidos a partir del cdigo modificado en el actual archivo .Exe y por ltimo el archivo pdb. Contiene informacin de depuracin que se utiliza cuando se ejecuta el programa en modo de depuracin. En este modo, usted puede inspeccionar de forma dinmica la informacin que se genera durante la ejecucin del programa. Tambin se genera un subdirectorio de depuracin para el archivo de proyecto arrecho1. En este se generan diez o ms archivos que se crearon durante el proceso de debug y se puede ver qu tipo de informacin contienen a travs del Explorador de Windows, pero para nosotros son irrelevantes.

Versiones de depuracin (Debug) y de lanzamiento de su programa Se Puede establecer una serie de opciones para un proyecto a travs del men the Project > arrecho1Properties. Estas opciones determinan cmo se procesa el cdigo fuente durante la fase de compilacin (compile) y enlace (link). El conjunto de opciones que produce una versin ejecutable de su programa se llama una configuracin. Cuando se crea un espacio de trabajo en un nuevo proyecto, Visual C + + 2010 crea automticamente las configuraciones para la produccin de dos versiones de su aplicacin. Una versin, llamada la versin de depuracin (DEBUG), incluye informacin que ayuda a depurar el programa. Con la versin de depuracin de su programa puedes recorrer el cdigo paso a paso cuando las cosas no salen como se planifican, donde se puede comprobar los valores de datos en el programa. La otra, es la versin de lanzamiento (RELEASE), no tiene informacin del debug incluido, pero cuenta con las opciones de optimizacin de cdigo para el compilador (compiler) que en caso de estar activas ofrece un mdulo ejecutable ms eficiente. Estas dos configuraciones son suficientes para sus necesidades a lo largo de este curso, pero cuando sea necesario agregar otras configuraciones para una aplicacin, puede hacerlo a travs del men

31 de mayo de 2010

ELECTRICIDAD

28

Build>Configuration Manager. Tenga en cuenta que este elemento de men no aparecer si no has cargado el proyecto. Obviamente esto no es problema, pero puede ser confuso si se navega a travs de los mens explorando algunas aplicaciones y cambia las opciones. Puedes elegir cul ha de ser la configuracin de tu programa seleccionando la configuracin en Active solution, navegando las listas en las pestaas desplegables del cuadro de dialogo Configuration Manager, como se muestra en la Figura 16.

Figura 16. Configuration Manager

Seleccione la configuracin de la lista en la que desee trabajar y haga clic en el botn Cerrar. Mientras que est desarrollando una aplicacin, debes trabajar con la configuracin de depuracin (Debug). Despus de que su aplicacin ha sido probada usando la configuracin de depuracin y parece estar funcionando correctamente, entonces debes reconstruir el programa (rebuild) como una versin de lanzamiento (release), lo que produce un cdigo optimizado sin la depuracin y la capacidad de rastreo, por lo que el programa se ejecuta ms rpido y ocupa menos memoria.

Ejecutando el Programa Despus de haber compilado satisfactoriamente el programa, se puede ejecutar presionando Ctrl + F5. En donde se debe mostrar la ventana que se muestra en la Figura 17.

31 de mayo de 2010

ELECTRICIDAD

29

Figura 17. Win32 Console Application

Como se ve, se obtiene el texto al que se haca referencia en el cdigo del programa a las comillas dobles escritas en la lnea de comandos. El "\n" que se escribi al final de la cadena de texto no se muestra en el resultado final ya que es una secuencia especial llamada secuencia escape, la cual denota un carcter que ejecuta un enter para acceder a una nueva lnea. Las secuencias escape se utilizan para representar caracteres en una cadena de texto ya transcritas en el programa y en la que no se tiene acceso al teclado para introducirlas.

Creando un Proyecto Consola de Windows Win32 vacio El proyecto anterior contena una cierta cantidad de archivos en exceso no necesarios en la construccin de ejemplos simples del lenguaje C + +. La opcin de los encabezados precompilados elegido por defecto dio como resultado el archivo anexo stdafx.h. Por lo que este es un mecanismo para hacer el proceso de compilacin ms eficiente cuando haya una gran cantidad de archivos en un programa, pero no ser necesario para muchos de nuestros ejemplos. Por lo que en el curso ser ms provechoso iniciar con un proyecto vaco, al que luego podremos agregar los archivos que realmente sean necesarios al cdigo fuente. Puedes ver cmo funciona esto mediante la creacin de un nuevo proyecto en una nueva solucin para un programa de consola Win32 con el nombre arrecho2. Despus de haber introducido el nombre del proyecto y hacer clic en el botn Aceptar, haga clic en Applications settings en la parte derecha del cuadro de

31 de mayo de 2010

ELECTRICIDAD

30

dilogo que sigue. A continuacin, puede seleccionar un proyecto vaco (Empty Project) de las opciones adicionales, como muestra la Figura 1 ..

Figura 18. Empty Project

Al hacer clic en el botn Finalizar (Finish), se crea el proyecto como antes, pero esta vez sin los archivos de fuente. A continuacin se agrega un nuevo fichero fuente al proyecto. Haga clic en el panel Solution Explorer y seleccione Add >New Item en el men contextual. Aparece un cuadro de dilogo, haga clic en Code en el panel izquierdo, y ver al archivo C + + (.cpp) en el panel derecho al que seleccionar. Escriba el nombre de archivo como arrecho1_02, como se muestra en la Figura 19.

Figura 19. Seleccin del archivo .cpp para iniciar un proyecto vacio

31 de mayo de 2010

ELECTRICIDAD

31

Al hacer clic en el botn Add, el nuevo archivo se agrega al proyecto y se muestra en la ventana del editor. Por supuesto, el archivo est vaco, por lo que deber editar todas las lneas de comando, introduzca el siguiente cdigo en la ventana del editor:
// arrecho1_02.cpp es un programa simple de la console program Win32 #include <iostream> // esta es la libreria Basica de entrada salida int main() { std::cout << "Este es un programa simple que muestra texto de salida." << std::endl; std::cout << "Puedes mostrar mas lineas de texto" << std::endl; std::cout << "solo repitiendo las instrucciones que estamos ejecutando, por lo que me gusta esto." << std::endl; return 0; // Regresar al sistema operativo windows }

Como puede detectar la numeracin y la sangra van apareciendo de forma automtica a medida que escribe el cdigo. C + + utiliza sangra para que los programas sean ms fcil de leer, y el editor automticamente coloca guiones en cada lnea de cdigo a medida que se introduce, a partir de lo que estaba en la lnea anterior. Tambin puede ver el color resaltado en la sintaxis a medida que escribe. Algunos elementos del programa se muestran en diferentes colores ya que el editor automticamente asigna colores a los elementos del lenguaje en funcin de lo que son: comandos, comentarios, libreras, entre otros. El cdigo anterior es el programa completo. Probablemente ha notado un par de diferencias con el cdigo generado por el Asistente para aplicaciones en el ejemplo anterior. No hay ninguna directiva # include para el archivo stdafx.h. inclusive no tiene este archivo como parte del proyecto, esto porque no est usando la instalacin de los encabezados precompilados. El nombre de la funcin aqu es main; antes era _tmain. De hecho, todos ISO / ANSI C + + comienzan la ejecucin de programas con la funcin main (). Microsoft prev tambin que esta funcin puede llamarse wmain cuando utilice caracteres Unicode, y ambas la main o la wmain inician programas, dependiendo de si el programa va a utilizar caracteres Unicode o no. Para el ejemplo anterior, se defini a _tmain despus de las escenas del cdigo principal configurada como una subrutina. Por lo que, a

31 de mayo de 2010

ELECTRICIDAD

32

menos que se indique lo contrario, utilizaremos el nombre main en todos los ejemplos ISO / ANSI C + + a continuacin. Al estudiar las instrucciones de salida estas son un poco diferentes a las del programa anterior. En la primera intervencin luego del main () encontramos: Dos operadores <<, cada uno enva lo siguiente a std:: cout, que es la secuencia de caracteres de salida estndar. En primer lugar la cadena entre comillas dobles se enva a la corriente (al stream) y luego std:: endl, que se define en la biblioteca estndar como un carcter de nueva lnea. Anteriormente, se utiliz la secuencia de escape \ n para un carcter de nueva lnea dentro de una cadena entre comillas dobles. Por lo que si hubisemos escrito el cdigo como el anterior la instruccin anterior quedara as: std::cout << This is a simple program that outputs some text.\n; Ahora se puede construir este proyecto de la misma manera que el ejemplo anterior. Tenga en cuenta que al darle el nombre a nuestro archivo de cdigo fuente en el panel Editor este es guardado automticamente, esto es por si an no lo has salvado. Cuando se haya realizado el programa con xito, pulse Ctrl + F5 7 para ejecutarla.

Figura 20. Programa arrecho1_02 en la consola Win32.

la secuencia de comandos Ctrl + F5, es un comando que ejecuta el programa en ejecucin. su funcin es introducir un texto en la consola Win32 de "presione una tecla para continuar..." es decir una pausa. esto no lo hace el programa, por lo que en secciones posteriores se ensearan esas opciones.

31 de mayo de 2010

ELECTRICIDAD

33

Tratar con Errores Si no se escribe el programa correctamente, aparecen errores en el reporte. Para mostrar cmo funciona esto, deliberadamente introduciremos un error en el programa. Pero si ya aparecen errores en su programa, puede usarlos para realizar este ejercicio. Regresar al panel Editor y elimine el punto y coma al final de la segunda lnea a partir de la llave abierta (lnea 8), y luego reconstruir (build) el archivo de origen. El panel de salida en la parte inferior de la ventana de la aplicacin incluye el mensaje de error: C2143: syntax error : missing ; before return Cada mensaje de error durante la compilacin tiene un nmero de errores que puede consultar en la documentacin. Aqu, el problema es obvio, sin embargo, en los casos ms oscuros, la documentacin puede ayudarle a averiguar qu est causando el error. Para obtener la documentacin para un error, haga clic en la lnea de salida en el panel que contiene el nmero de error y, a continuacin, presione F1. Una nueva ventana se muestra con toda la informacin del error. Si lo desea, puede intentarlo con este simple error, que hemos creado. (Claro est, que la respuesta la obtendr en ingls pero eso no es barrera para un Ingeniero). Una vez corregido el error, reconstruyes nuevamente el proyecto donde se crea un nuevo archivo .exe que reemplaza al anterior. Tambin vamos a usar programas de consola CLR, por lo que la seccin siguiente se muestra lo que es un proyecto de consola CLR parece.

Creacin de una consola CLR Proyecto Presione Ctrl + Shift + N para mostrar el cuadro de dilogo de Nuevo proyecto, seleccione el tipo de proyecto como CLR y la plantilla Aplicacin de consola CLR (CLR Console Application), como se muestra en la Figura 1-16. Introduzca el nombre arrecho3. Al hacer clic en el botn Aceptar, se crean los archivos para el proyecto.

31 de mayo de 2010

ELECTRICIDAD

34

No hay opciones para un proyecto de consola CLR, por lo que siempre comienzan con el mismo conjunto de archivos y la misma plantilla.

Figura 20. Propiedades de CLR Console Application.

En caso que se desee un proyecto vaco, hay una plantilla independiente, pero no la vamos a utilizar a excepcin de casos especficos en este curso.

Figura 21. Programa arrecho3 con la plantilla CLR.

En la figura 21 puede verse que el cdigo tiene la misma directiva # que se incluye por defecto en programas C + + nativo de la consola CLR, por lo que para mejorar la eficiencia de este cdigo se anexa al encabezado una lnea nueva: using namespace System; Las plataformas de la librera .NET estn definidas dentro de un namespace, y todo el tipo estndar de cosas que son susceptibles de utilizarse se encuentra en

31 de mayo de 2010

ELECTRICIDAD

35

un namespace con el nombre de System. Esta declaracin indica que el cdigo de programa mostrado utiliza el System namespace, pero qu es exactamente un namespace? Ahora sabremos lo que es un namespace. Dentro del cdigo de programa y dentro del cdigo que forma las librerias de .NET, Los nombres son definidos por lotes de cosas, donde se incluye los tipos de datos, variables y bloques de cdigo llamados funciones, por lo que todas deben poseer nombres. El problema es que si se te ocurre inventar un nombre que ya se utiliza en las libreras, se presentar la posibilidad de confusin. Un namespace proporciona una manera de corregir este problema. Todos los nombres en el cdigo de la librera que se define dentro del System namespace de forma implcita son prefijados con el nombre de

namespace. Por lo tanto, un nombre como String (cadena de caracteres) en la librera es realmente System::String. Esto significa que si usted ha utilizado por error el nombre de string para algo en el cdigo, puede utilizar System:: String para hacer referencia al string de la librera .NET. Los dos signos de dos puntos :: es un operador llamado operador de resolucin de mbito. Aqu el operador de resolucin de mbito separa el namespace llamado System del nombre tipo String. Esto se ha visto en los ejemplos de formato C + + nativo en este captulo con la instruccin std::cout y std::endl. Por lo que se repite la historia, std es el namespace de llamada a nombres nativos de las libreras C + +, por lo que las instrucciones cout y endl son los nombres que se han definido dentro del namespace de la librera std para representar la secuencia de salida estndar y el carcter de nueva lnea, respectivamente. De hecho, la declaracin de namespace utilizada en este ejemplo le permite utilizar cualquier nombre del System namespace sin tener que utilizar el namespace de nombres como un prefijo. Por lo que probablemente al culminar el cdigo de su programa, y en caso de asignar un nombre a una variable igual al de la librera, esto traer igualmente conflictos de reconocimiento por el compilador C

31 de mayo de 2010

ELECTRICIDAD

36

+ + Visual Studio 2010, el problema en este caso se podra resolver mediante la eliminacin de la declaracin de namespace (using namespace System) y explcitamente clasificar el nombre de la librera con el nombre namespace en cada instruccin. Si te sientes confundido por la explicacin, es importante indicarte que estaremos tocando este tema en el captulo 2 con ejemplos para que progresivamente no queden dudas, solo debes tener paciencia. Debido a que la ejecucin del programa se llevaba a cabo muy rpido lo ajustamos para que se introdujera una pausa mediante la lectura del teclado, como la variable que se guarda esa informacin del teclado (number;) es entera, entonces presionamos un nmero cualquiera y luego la tecla enter para terminar el programa. El resultado se muestra en la figura 22.
// arrecho3.cpp : main project file. En este programa anexamos una lectura del //teclado esto debido a que la consola se cierra muy rpido y no se puede ver el //resultado del mismo. Para ello incluimos la instruccin std::cin >> number; cuya //funcin es leer el teclado e introducir la respuesta en una variable, que debe ser //defina. Por lo que colocamos en la linea 15 esa definicin como un espacio que //recibe nmeros enteros (integer), pero para que el editor reconozca nuestra //instruccin se requiere la librera #include <iostream> #include "stdafx.h" #include <iostream> using namespace System; int number; int main(array<System::String ^> ^args) { Console::WriteLine(L"Hello World"); std::cin >> number; return 0; }

Figura 22. Salida del programa en la consola CLR.

Es importante indicar que la salida sigue siendo igual al del primer ejemplo y es producida por la siguiente lnea:

31 de mayo de 2010

ELECTRICIDAD

37

Console::WriteLine(L"Hello World");

Este utiliza una funcin de librera .NET para escribir la informacin entre las comillas dobles para la lnea de comandos, as que es el equivalente a la sentencia del CLR nativo C + + que ha agregado al programa arrecho1:
std::cout << Hello world!\n;

Algo que se debe resaltar es que la respuesta es ms inmediata en este programa ejecutado en la consola CLR que los hechos con sentencias nativas C + +.

Opciones de Configuracin en Visual C + + 2010 Hay dos conjuntos de opciones que se pueden configurar. Puede establecer opciones donde se aplican a las herramientas proporcionadas por Visual C + + 2010, las cuales se aplican en cada contexto del proyecto. Tambin, se puede definir las opciones que son especficas de un proyecto y determinar cmo el cdigo de proyecto es procesado cuando se compila y enlaza. Las opciones son definidas a travs del cuadro de dilogo Opciones que se muestra cuando se selecciona Tools > Options en el men principal.

Figura 23. Cuadro de dialogo opciones.

Al hacer clic en el signo de flecha vaca ( ) a cualquiera de los elementos en el panel izquierdo se despliega una lista de subtemas, por supuesto una flecha llena ( ) indica que la lista ya est desplegada. La figura 23 muestra las opciones para

31 de mayo de 2010

ELECTRICIDAD

38

el subtema General en relacin con proyectos y soluciones. El panel derecho muestra las opciones que puede establecer para el tema seleccionado en el panel izquierdo. Aqu nos interesan slo unas pocas opciones por el momento, pero si lo desea puede navegar por la gama de opciones disponibles; e indagar mediante un clic en el botn de ayuda (con la interrogante) de la parte superior derecha del cuadro de dilogo y se le muestra una explicacin de las opciones actuales en los que podr hacer un recorrido por la ayuda de Microsoft en la web con opciones de traducir el texto. En la primera opcin es posible que predeterminar un directorio (path) diferente para crear un nuevo proyecto, como se muestra en la Figura 23. Slo se tiene que configurar la ruta de acceso a la ubicacin donde se almacenarn los proyectos y soluciones. Se pueden establecer opciones que se aplican a todos los proyectos de C + + mediante la seleccin de Projects and Solutions > VC++ Project Settings en el panel izquierdo. Tambin puede establecer opciones especficas para el proyecto actual a travs del tema Project > Properties en el men principal. Este men se autoetiqueta para reflejar el nombre del proyecto actual.

Figura 24. Propiedades del proyecto actual.

31 de mayo de 2010

ELECTRICIDAD

39

Creacin y ejecucin de aplicaciones Windows Slo para mostrar lo fcil que va a ser Visual C + +, ahora crearemos dos grupos de trabajo bajo aplicaciones de Windows. Crearemos una aplicacin en C + + nativo usando MFC 8 y, a continuacin una aplicacin con Windows Forms que se ejecuta con el CLR. Claro est que es solo una muestra y cuando se hayan cubierto los temas necesarios se explicar en detalle. Solo se pretende mostrar que los procesos sern sencillos.

Crear una aplicacin MFC Para empezar, en caso que est activo un proyecto cosa que puede verificar en la barra de ttulo, en la que aparece el nombre del proyecto abierto seguido de Microsoft Visual Studio puedes cerrarlo seleccionando Close Solution desde el men File o como alternativa puedes abrir uno nuevo y el anterior se cierra automticamente. Para crear el programa de Windows, seleccione New > Project en el men File o presione Ctrl + Shift + N; a continuacin, elija el tipo de proyecto como MFC y seleccione MFC Application como la plantilla de proyecto. Luego introducir el nombre del proyecto como arrecho4, ver la Figura 25. Al hacer clic en el botn Ok, se muestra el cuadro del Asistente para aplicaciones MFC Application Wizard. El cuadro de dilogo tiene una gama de opciones que le permiten elegir qu caractersticas le gustara incluir en su aplicacin. Estos se identifican con los elementos de la lista de la derecha del cuadro de dilogo, como muestra la Figura 26.

Microsoft Foundation Classes. encapsula el sistema operativo Windows Application Programming Interface (API) con el uso de la interfaz grfica de usuario (GUI) para la creacin y el control, facilitando notablemente el proceso de desarrollo del programa.

31 de mayo de 2010

ELECTRICIDAD

40

Figura 25. Apertura de un proyecto MFC Application.

Se utilizarn muchas opciones cuando estemos listos para el uso de Windows Forms, recuerde que este texto solo explica lo fcil que es la programacin en esta consola pero aun nos falta tela que cortar para entrarle con ms detalle ms adelante.

Figura 26. Eleccin de las caractersticas del proyecto MFC Application.

En este caso no tomaremos en cuenta las opciones que se muestran y slo aceptaremos la configuracin predeterminada, por lo que haremos clic en el botn
Fig. 27

31 de mayo de 2010

ELECTRICIDAD

41

Finish para crear el proyecto con la configuracin predeterminada. El panel Explorador de soluciones en la ventana del IDE se parecer al de la Figura 27. Puedes observar que con la ventana Solution Explorer, en la parte inferior viene una pestaa llamada Properties en donde puedes limitar o extender el proyecto en creacin. Tambin puedes ver un conjunto grande de archivos, que por ejemplo la carpeta Resource Files fue cerrada para que esa figura entrara en este trabajo. Por lo que son un gran nmero de archivos que se han creado. Por lo antes citado, necesitar mucho espacio en su disco duro al escribir los programas de Windows! Los archivos con la extensin .cpp contienen cdigo fuente ejecutable de C + + y los archivos .h contienen cdigo C + + que consiste en las definiciones que se utilizan en el cdigo ejecutable. Los archivos .ico contienen iconos. Las carpetas contenedoras de estos tipos de archivos, no son carpetas reales, ya que no aparecern en la carpeta del proyecto que se ha creado en su disco duro. Los archivos se agrupan en las subcarpetas para que tenga facilidad de acceso.

Si ahora echamos un vistazo a la carpeta de soluciones arrecho4 utilizando el Explorador de Windows o cualquier otra forma de exploracin, se pueden mirar los archivos que se guardan en el disco duro (63 archivos). Estos se distribuyen en cuatro de ellos estn en la carpeta arrecho4, los otros estn en la subcarpeta arrecho <con 30> y una subcarpeta denominada res <otros 25 archivos>. Los archivos en la subcarpeta res contienen los recursos utilizados por el programa como los mens e iconos. Todo esto como resultado de tan slo introducir el nombre que desea asignar al proyecto. Con tantos archivos y nombres de archivo que se crean automticamente, es importante que los ubique en un directorio independiente cuando haga cada proyecto ya que se prestar a mucha confusin mantenerlos en la carpeta por defecto (Mis Documentos) o Documents\Visual Studio 2010\Projects\arrecho4 (segn sea su sistema operativo Windows). Uno de los archivos en el directorio del proyecto arrecho4 es ReadMe.txt, el cual proporciona una explicacin del propsito de cada uno de los archivos que el

31 de mayo de 2010

ELECTRICIDAD

42

Asistente para aplicaciones MFC ha generado. Puedes abrirlo utilizando el bloc de notas, WordPad, e incluso el editor de Visual C + + 2010. Para verla en la ventana del Editor, haciendo doble clic sobre l en el panel Explorador de soluciones (Solutiion Explorer).

Building and Executing la aplicacin MFC Antes de poder ejecutar el programa, se debe construir (Build) el proyecto, mediante la compilacin (compiler) del cdigo fuente y enlazar (link) los mdulos del programa. Exactamente de la misma manera que se hizo con la consola de ejemplo de aplicacin. Para ahorrar tiempo, pulse Ctrl + F5 para conseguir que el proyecto sea construido y luego ejecutado en una sola operacin. Despus de que el proyecto ha sido construido sin errores, se muestra la ventana creada. Esta por defecto provee un conjunto de funciones estndar de Windows y toma la misma forma del tema que est activo. Como tambin puede observarse que, se complet la construccin de la ventana con mens y barra de herramientas; pero sin funciones especificas, ya que es lo que se agrega para que el programa pase a nuestro dominio. Incluso puede crear nuevas ventanas en el menu New y tambin navegar en esta plantilla para aplicaciones creada. Creo que estars de acuerdo que la creacin de un programa de Windows con el Asistente MFC Application Wizard por defecto, no ha dejado ningn tipo de conocimiento ni esfuerzo. Por lo que se crear una aplicacin a la antigua, donde se vea ms en detalle algunas funciones.

Crear una aplicacin de Windows Forms Para esta aplicacin se utiliza otro Asistente para aplicaciones. As que se crea otro proyecto nuevo, pero esta vez se selecciona el tipo CLR en el panel izquierdo del cuadro de dilogo New Project y se selecciona la plantilla Aplicacin de Windows Forms Application.

31 de mayo de 2010

ELECTRICIDAD

43

Figura 28. Programa hecho con el MFC Application Wizard por defecto.

A continuacin, introducir el nombre del proyecto como arrecho5, el resultado se muestra en la figura 29.

Figura 29. Proyecto CLR Windows Forms Application.

Hay un nmero considerablemente menor en este proyecto. si se busca en los directorios, hay un total de 17 archivos incluyendo los archivos de solucin. Una razn para esto es: primero, la interfaz grfica de usuario es mucho ms simple

31 de mayo de 2010

ELECTRICIDAD

44

que la aplicacin nativa de C + + usando MFC y segundo, La aplicacin de Windows Forms no tiene mens o barras de herramientas, slo hay una ventana. Por supuesto, puede agregar todas estas cosas con bastante facilidad, pero el asistente para una aplicacin de Windows Forms no asume que daba hacerlo desde el principio. Inclusive si miras en el editor la ventana Design esta es diferente.

Figura 30. Ventana inicial de la CLR Windows Forms Application y las propiedades.

La ventana del editor muestra una imagen de la aplicacin en lugar del cdigo. Ver la figura 30, la cual contiene el cuadro de programa a la izquierda y a la derecha la ficha propiedades de la nueva ventana de programa. La razn de esto es que el desarrollo de la interfaz grfica de usuario de un Windows Forms est orientado hacia un enfoque de diseo grfico en lugar de un enfoque de codificacin. Se pueden agregar componentes GUI para la ventana de aplicacin con solo arrastrar o colocar, y estos se mostrarn de forma grfica, Visual C + + 2010 genera automticamente el cdigo para mostrarlos. Si pulsa Ctrl + Alt + X o seleccionas View > Toolbox, se ver una ventana adicional que muestra una lista de componentes de la interfaz grfica de usuario (ver figura 31).

31 de mayo de 2010

ELECTRICIDAD

45

La ventana Cuadro de herramientas presenta una lista de componentes estndar que se pueden agregar a una aplicacin de Windows Forms. Puede probar y aadir algunos botones a la ventana de programa arrecho5. Haga clic en el icono Button y luego haga clic en el rea de la ventana forms de la aplicacin arrecho5 donde quiera que este ese botn. Puede tambin ajustar el tamao del botn arrastrando sus esquinas como lo hara en un dibujo pegado en PowerPoint, y puede moverlo si desea haciendo clic sostenido dentro del botn. Tambin puede cambiar el ttulo con tan slo escribir, claro est que el botn debe estar seleccionado; pruebe introducir la palabra Inicio con el teclado y presione enter al final. Ver que al introducir los datos, se abrir una ventana (properties>text) que contiene las propiedades del objeto botn (ver figura 30 izquierda). Recuerda que solo mostraremos cuan fcil es programar con visual, no se entrar en detalle aun. Aada otro botn con el nombre Fin, por ejemplo. Se puede editar grficamente cualquiera de los componentes de interfaz grfica de usuario en el momento que se desee si est programando, y el cdigo se ajusta automticamente. Trate de aadir unos cuantos componentes de la misma manera y luego compile y ejecute el ejemplo pulsando Ctrl + F5. La ventana del programa de aplicacin se mostrar en todo su esplendor. No podra ser ms fcil, verdad?

Figura 32. Programa CLR Windows Forms Application ejecutndose.

You might also like