Clase 1: Introducción - Ivan...
-
Upload
hoangduong -
Category
Documents
-
view
216 -
download
0
Transcript of Clase 1: Introducción - Ivan...
Iván Bernal, [email protected]
httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito – Ecuador
Copyright @2002, I. Bernal
Programación con Herramientas VisualesProgramación con Herramientas Visuales
Clase 1: IntroducciónLunes, 2 de Diciembre de 2002
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
22
Agenda
• Aspectos administrativos– Visión del curso
• Deberes, exámenes, proyectos, etc.• Laboratorio.
• Introducción a la Programación bajo Windows.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
33
Aspectos administrativos (1)
• Página web del curso:http://wwwfie.epn.edu.ec/ibernal
• Horario de clases:– Lunes 09-11h– Viernes 15-17h
• Aula: Laboratorio de Redes
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
44
Aspectos administrativos (2)
• Horas de consulta: – Miércoles 10-12h– Jueves 11-13h
• Oficina:– E-207 ó Lab. Comunicación Digital.
• Fecha de evaluaciones (acumulativas)– Prueba 1: Lunes, 6 de Enero de 2003– Prueba 2: Lunes, 3 de Febrero de 2003– Prueba 3: Lunes, 3 de Marzo de 2003– Prueba 4: Viernes, 4 de Abril de 2003
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
55
Aspectos administrativos (3)
• Evaluación:– Teoría (60%)
• Pruebas (20% cada una, total 40%)• Pruebas sorpresa (20%)
– Laboratorio(40%)• Deberes
– Habrán preguntas de los deberes en pruebas y exámenes.
• Trabajos• Pruebas de Material de lectura enviado.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
66
Aspectos administrativos (4)
• Código de Honor:1. No prestarán ó recibirán ayuda durante
pruebas y exámenes; No prestarán ó recibirán ayuda no autorizada en tareas asignadas, preparación de informes, u otro tipo de tareas utilizadas por el profesor como parte de la evaluación.
2. Contribuirán y tomarán un papel activo en buscar que otros y ellos mismos mantengan el espíritu y significado del Código de Honor.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
77
Aspectos administrativos (5)• Primera tarea
1. Leer el artículo respecto a William LeMessurier .• Entregar entre 10 y 15 líneas escritas a mano.• La idea principal del artículo y cómo interpretaría esa idea
principal, a la actividad que usted realiza “estudiar”. • No pido resumen del artículo, no quiero que me
mencionen los personajes del artículo, ni su historia.
2. Leer las indicaciones generales de mi página web.• Sobre el Código de Honor.• Sobre administración del tiempo.• Sobre el formato de entrega de deberes.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
88
Programa de la Materia (1)
1. Introducción a objetos.2. Creando y usando objetos (Proceso de
compilación).3. Revision de lo que hay de C en C++. C vs. C++. 4. Clases.5. Encapsulamiento de la implantación.6. Constructores y destructores.7. Redefiniendo funciones y argumentos con valor
predeterminado.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
99
Programa de la Materia (2)
8. Constantes, funciones Inline.9. Referencias y punteros - Constructor por
copia (copy constructor).10. Redefinición de operadores.11. Creación dinámica de objetos.12. Herencia simple y múltiple. 13. Polimorfismo y funciones virtuales.14. Introducción a Templates. Librería estándar.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
1010
Bibliografía (1)• D. Kruglinski, S. Wingo, G. Shepherd,
Programming Microsoft Visual C++, Fifth Edition,Microsoft Press, 1998.
Ø Disponible en la página web de la clase.
• D. Kruglinski, Inside Visual C++. Microsoft Press, Redmond, Washington, 4ta Edición, 1997.
• D. Kruglinski, Programación Avanzada con Visual C++. Microsoft Press, Traducción de McGrawHillde la 3ra Edición de 1995.
Ø Disponible en Español.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
1111
Bibliografía (2)• I. Horton, Beginning Visual C++ 6.0. WROX
Press Ltd, 1998.Ø Disponible en la página web de la clase.
• H. Schildt, Windows Programming: Annotated Archives. McGraw Hill, Berkeley, California, 1999.
• M. Blaszczak, The Revolutionary Guide to MFC 4 Programming with Visual C++. WROX Press Ltd, Canadá, 1996.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
1212
Bibliografía (3)• E. Kain, The MFC Answer Book. Addison Wesley,
USA, 1998.
• J. Prosise, Programming Windows with MFC .
Microsoft Press, 2da. Edición.1999.Ø Disponible en la página web de la clase.
• A. Jones and J. Ohlund, Network Programming for Microsoft Windows. Microsoft Press, Redmond, Washington, 1999.
• URLs:http://www.fintech.ru/Library/prog/SEUsingVC6/index.htm
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
1313
Objetivos (1)• Dar un fundamento sólido de como utilizar una
herramienta de tipo visual para el desarrollo de aplicaciones en un ambiente basado en ventanas.
• Se utilizará el ambiente de ventanas de Microsoft Windows.
– Desarrollar un conocimiento sólido de programación bajo Windows.
– El curso se centra principalmente en la utilización de MFC(Microsoft Foundation Classes).
– Se introducirán otras tecnologías como COM y programación utilizando directamente el API Win32.
• Requisitos:– Un conocimiento teórico-práctico del lenguaje C++.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
1414
Laboratorio
• Hay 19 estudiantes registrados.– Formar grupos de 2 personas.
• Objetivos:– Reforzar los conceptos presentados en la teoría.– Reforzar los conocimientos de programación.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
1515
Recomendaciones (1)
1. Preguntar en clase.2. Preguntar fuera de clase.3. Leer el material luego de cada clase.
– Preguntar en clase.– Preguntar fuera de clase.
4. Leer material adicional.5. No dejar acumular las dudas y preguntas
indefinidamente.6. No estudiar solo unos pocos días antes de las
pruebas.7. Hacer de forma individual deberes.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
1616
Recomendaciones (2)
Preguntar
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
1717
Introducción
• Se introduce el modelo de programación de Windows (Win32 en particular).
• Se explica como los componentes de Visual C++ colaboran para ayudar a escribir aplicaciones para Windows.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
1818
Procesamiento de Mensajes (1)
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
1919
Procesamiento de Mensajes (2)
• Cuando se escriben programas para MS-DOS (similar a los escritos para al consola en POO), el requerimiento fundamental fue el proveer la función main.– Una vez que se invoca mainmain, se puede utilizar
cualquier estructura de programación.– El programa termina cuando mainmain retorna.– Si se requiere ingresar datos desde teclado, o en
general cualquier otro servicio del Sistema Operativo, se invoca una función determinada.• getchar
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
2020
Procesamiento de Mensajes (3)
• Bajo el SO. Windows se invoca la función WinMainWinMain.
• Toda aplicación debe tener WinMainWinMain, que cumple varias tareas específicas. – Tarea mas importante: crear la ventana
principal de la aplicación.– La ventana principal debe procesar los
mensajes que Windows (el SO) le envía.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
2121
Procesamiento de Mensajes (4)
• Los programas para ambientes como MS-DOS usan un modelo de programación en el que los programas ejecutan de arriba hacia abajo, de forma ordenada.– El camino tomado puede variar en diferentes
ejecuciones, dependiendo de los datos de entrada y las condiciones bajo las cuales se ejecuta.
– En resumen, se puede predecir cual es el camino que tomará.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
2222
Procesamiento de Mensajes (5)• En un programa bajo MS-DOS es el
programa, no el SO, el que determina que se llama y cuando.– Un programa llama al SO. para ingresar datos del
usuario.
• Un programa bajo Windows procesa datos del usuario, respondiendo a mensajes enviados desde el SO.
• La mayoría de mensajes en Windows están definidos y se aplican a todas las aplicaciones.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
2323
Procesamiento de Mensajes (6)
• Windows utiliza un modelo de programación determinado por eventos (event driven).
• Las aplicaciones responden a eventos, procesando los mensajes enviados por el sistema operativo.
• Una vez que WinMainWinMain crea la ventana principal, entra en una lazo de mensajes (message loop).
– Recupera o lee mensajes.– Los despacha para que sean procesados en los
procedimientos de las ventanas.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
2424
Procesamiento de Mensajes (7)
• Los mensajes esperan en una cola de mensajes hasta que son retirados de allí.
• El lazo de lectura de mensajes termina cuando se encuentra el mensaje WM_QUIT, lo que indica que es tiempo que la aplicación termine.
–– WinMainWinMain retorna y la aplicación termina.
• In C el procedimiento (window procedure) que atiende a los mensajes se implementa con una sentencia switchswitch con casescases para cada mensaje a recibirse.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
2525
Procesamiento de Mensajes (8)
• El código que procesa un mensaje en particular se conoce como manipulador de mensaje (message handlermessage handler).
• Los mensajes que una aplicación no procesa (no desea modificar el comportamiento básico), se transfieren a una función del API Win32.–– DefWindowProc, DefWindowProc, provee respuestas predeterminadas
para mensajes no procesados.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
2626
Procesamiento de Mensajes (9)
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
2727
Procesamiento de Mensajes (10)• WM_CREATE
– Se envía cuando una ventana se está creando.
• WM_LBUTTONDOWN– Se envía cuando el usuario presiona el botón izquierdo del
mouse.
• WM_CHAR– Se envía cuando el usuario presiona una tecla.
• WM_CLOSE– Se envía cuando el usuario cierra una ventana.
• WM_COMMAND– Se envían a la ventana apropiada en respuesta a una
selección del usuario en los menúes, y otras acciones.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
2828
Procesamiento de Mensajes (11)
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
2929
Procesamiento de Mensajes (12)
• El prototipo de las funciones en el que se identifica el mensaje y los argumentos es:
Función (mensajeID, param1, param2);– Los parámetros son valores de 32 bits.– Los parámetros indican las coordenadas del
mouse o identifica la tecla presionada.
• Es posible definir mensajes de usuario, acomodados a sus necesidades.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
3030
Procesamiento de Mensajes (13)
• Luego se verá cómo llegan estos mensajes a una aplicación y cómo responder a ellos de acuerdos a las necesidades particulares.– MFC, la infraestrucutra que se estudiará en
este curso, se encarga de muchas detalles para facilitar la tarea del programador.
– MFC esconde los detalles de la función WinMain y el detalle de cómo manejar los mensajes.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
3131
GDI de Windows (1)
• Interfaz para el Dispositivo de Gráficos (Graphics Device Interface).
• Bajo MS-DOS, muchos programas escribían directamente a la memoria de vídeo y al puerto de la impresora.– El programador debía escribir drivers para las
distintas tarjetas de vídeo y para cada impresora.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
3232
GDI de Windows (2)• Bajo Windows se tiene una capa de abstracción
llamada GDI.• Windows es quien se encarga de de los drivers de
vídeo y para la impresora y no el programador.– En lugar de acceder al hardware, se invocan funciones del
GDI que manipulan una estructura de datos llamada device context.
– Windows se encarga de asociar este device context con un dispositivo físico, para emitir las instruccionx ces de entrada/salida.
– El usar el GDI es casi tan rápido como acceso directo al vídeo.– GDI permite el compartir entre varias aplicaciones la pantalla.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
3333
Programación basada en recursos (1)
• Cuando se requiere información constante para una aplicación, una opción es hacer que se lea desde un archivo.
• En Windows, durante el desarrollo de la aplicación, se almacena en una archivo de recursos que es luego compilado y enlazado para generar el ejecutable.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
3434
Programación basada en recursos (2)• En un archivo de recursos se puede tener
bitmaps, íconos, definiciones de los menúes, la organización de ventanas de diálogo y cadenas de carateres (texto).
• Para editar recursos se tienen editores del tipo wysiwyg (what you see is what you get)
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
3535
Administración de Memoria
• La administración de memoria en Windows es “cada vez mas fácil”, con cada nueva versión.
• En la actualidad se reserva memoria necesaria y es Windows quien se encarga de estas tareas.
• Se revisarán técnicas de administración usadas en Win32 como memoria virtual y archivos mapeados en memoria.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
3636
Librerías enlazadas dinámicamente (1)
• Dll (dynamic link libraries)• Enlazado dinámico quiere decir que
librerías construidas de forma especial, pueden ser cargadas/descargadas y enlazadas durante la ejecución de un programa.
• De esta forma múltiples aplicaciones pueden compartir dlls, ahorrando memoria y espacio en el disco.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
3737
Librerías enlazadas dinámicamente (2)
• Las dlls incrementan la modularidad de los programas porque se puede compilar y probar las dlls por separado.
• Las dlls se diseñaron para usarse con C y para C++ se ha tenido que hacer algunos arreglos.– MFC provee el conjunto de clases de esta infraestructura en
varias dlls.– MFC puede ser enlazada en forma estática ó dinámica a
una aplicación.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
3838
El API Win32• Los primeros programadores para Windows
usaban C para acceder a los servicios del Win16.• En la actualidad para escribir aplicaciones de 32
bits se usa la API Win32.– Mas de 1200 funciones en Win32.– Los parámetros de las funciones de Win32 son de 32
bits.
• MFC esconde muchas de las llamadas a Win32, y las presenta a sus usuarios como llamadas usando C++..
– El programador si usará directamente el API Win32 en sus aplicaciones.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
3939
Componentes de Visual C++ (1)
• Visual C++ permite el desarrollo de aplicaciones para Windows usando:– C para acceder directamente el API Win32.– ATL (Active Template Library) para el desarrollo de Controles
ActiveX.– MFC: infraestructura para el desarrollo de Aplicaciones.
• Microsoft Foundation Class.• Contenida en librerías.• Se usará clases de C++ de MFC.• Se usarán herramientas de Visual C++ como la ayuda
para generar aplicaciones (AppWizard), y la ayuda para generar clases (Class Wizard).
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
4040
Componentes de Visual C++ (2)
• Resumen del proceso de construcción para aplicaciones con Visual C++.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
4141
Microsoft Developer Studio (1)
• Developer Studio es un ambiente integrado de desarrollo (IDE) que es compartido por varios productos.– IDE: Integrated Development Environment.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
4242
Microsoft Developer Studio (2)
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
4343
Microsoft Developer Studio (3)
• Proyecto:– Conjunto interrelacionado de archivos fuente
que se compilan y enlazan para generar un ejecutable ó dll.
– Los archivos fuente por lo general se almacenan en un directorio separado.
– El proyecto depende de muchos otros archivos y librerías, aparte de los archivos fuente generados por el usuario.• Archivos incluidos (#include).• Archivos de librerías.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
4444
Microsoft Developer Studio (4)• MakeFile
– Almacena opciones para el compilador y enlazador (linker).
– Expresa todas las interrelaciones entre los archivos fuente.
– Se debe indicar a Visual Studio que se desea generar el makefile.
• Programa make– Lee el makefile y luego invoca el compilador,
ensamblador, compilador de recursos, y enlazador para producir el ejecutable ó dll.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
4545
Microsoft Developer Studio (5)
• Project File (DSP)– Sirve para el mismo propósito que un makefile.
• Workspace file (DSW)– Es un archivo que contiene información para
cada proyecto que pertenece al espacio de trabajo.
– Es posible tener varios proyectos en un mismo espacio de trabajo.
– Para trabajar en un espacio de trabajo existente se abre el archivo DSW.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
4646
Microsoft Developer Studio (6)
Archivos intermedios generados por Developer Studio
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
4747
Editores de Recursos (1)
• Un recurso se selecciona para edición una vez que se escoge la Vista de recursos(ResourceView)
• Para cada tipo de recurso existe un editor correspondiente.
• Se tiene editores wysiwygpara menúes y para ventanas de diálogo.
• En la imagen se presenta la edición de un cursor.
• El compilador de recursos lee el archivo RC (resourcescript).
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
4848
Compilador C/C++• El compilador de Visual C++ puede procesar
código fuente tanto en C como en C++.• La selección se realiza basados en la extensión
de los archivos:– “.c” indica código en C.– “.cpp” ó “cxx” indica código en C++.
• El compilador cumple con el estándar ANSI y tiene algunas extensiones de Microsoft.
• Se tiene templates (STL), excepciones y soporte para la identificación de tipos durante la ejecución (RTTI) .
– Algunas características no están integradas directamente en MFC, pero están a disposición de ser requeridas.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
4949
El enlazador (linker)
• Lee archivos .OBJOBJ (compilador) y .RESRES(compilador de recursos) y accesa los archivos .LIBLIB para el código de MFC, el código de Windows y el soporte en tiempo de ejecución.
• Los archivos .h de MFC contienen las directivas adecuadas para incluir los archivos .LIB necesarios, lo que facilita la tarea del programador.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
5050
El depurador ó debugger (1)• El depurador ayuda a encontrar errores lógicos.• Por ejemplo, se tiene amplio soporte para la
manipulación de:– Puntos de parada.– Ejecución paso a paso.– Se puede observar el valor de variables.– Se puede observar el contenido de lo apuntado por un
puntero.– Se puede acceder a miembros de un objeto de una clase
bajo observación y de las clases bases.
• Se debe compilar la versión para depuración para generar la información necesaria.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
5151
El depurador ó debugger (2)
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
5252
AppWizard
• Es un generador de código que crea un esqueleto para una aplicación para Windows.– El código generado se compila y se tiene una
aplicación que puede ejecutarse y trabaja.
• AppWizard pregunta por características, nombre de clases, nombre de archivos para en base a ello generar el código.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
5353
ClassWizard
• Permite la definición de nuevas clases.• Permite agregar datos miembro y
funciones miembro de una clase.– Las funciones pueden ser virtuales.– Se pueden incluir funciones para responder a un
mensaje específico recibido por la aplicación.
• Escribe los prototipos de las funciones, los cuerpos de las funciones de ser el caso.
• Escribe lo necesario para poder escribir los manejadores de mensajes.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
5454
Source Browser (1)• Permite examinar en donde se ha declarado una
función o dato (incluso clases) y explorar todos los lugares en donde están siendo usados.
• Permite gráficamente conocer información sobre:– Una función y otras funciones a las que llama o quienes la
invocan.– Para una clase se puede conocer las clases ya sean base o
derivadas.– En que archivo está un función, dato o clase.
• Se debe generar esta información y toma más tiempo la compilación.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
5555
Source Browser (2)
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
5656
ClassView
• Presenta todas las clases del proyecto e información de cada una en forma de árbol (datos, funciones)
• Se puede hacer doble click con el mouse y ver el código fuente.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
5757
Editor de código fuente
• Soporta coloración de sintaxis dinámica.• Soporta “autocomplete”
– Se escribe el inicio de una sentencia y el ambiente provee una serie de posibles opciones para completarla.
– Útil sino se recuerda los miembros de una clase.– Útil sino se recuerda el nombre y los parámetros de una
función del API Win32.
Iván Bernal, Iván Bernal, Ph.DPh.D..httphttp://://wwwfie.epn.edu.ecwwwfie.epn.edu.ec//ibernalibernal
Dic. 02 Dic. 02 –– Abril 03Abril 03PHVPHV
Escuela Politécnica NacionalEscuela Politécnica NacionalQuito Quito -- EcuadorEcuador
5858
Ayuda en línea
• Basado en HTML y trabaja de forma similar al browser para el web.
• La ayuda se accesa de acuerdo a las siguientes opciones:– Por libro.– Por tópico.– Por palabra (búsqueda).– Utilizando F1 sobre la palabra acerca de la cual se
requiere información.