Ilustrados comunidad mundial educativa
Inicio | Escribenos
User: Pass: Recordar ó (Registrate!)

| !Publicar Articulo¡

El compilador de Visual C++

Resumen: Versión 6.0. El nuevo Visual C++ de Microsoft proporciona un entorno general, actualizado, a nivel de producción para el desarrollo de todas las aplicaciones para Windows 95/98 y Windows NT. La versión 6 de Visual C++ de Microsoft abarca tres configuraciones diferentes: Ediciones Básicas, Profesionales y para Desarrollo. Hardware y software recomendados. Prestaciones avanzadas.
604 visitas
Rating: 0
Tell a Friend
Autor: Vivas Henry

El compilador de Visual c++

Versión 6

 

El nuevo Visual C++ de Microsoft proporciona un entornogeneral, actualizado, a nivel de producción para el desarrollo de todas lasaplicaciones para Windows 95/98 y Windows NT. La versión 6 de Visual C++de Microsoft abarca tres configuraciones diferentes: Ediciones Básicas,Profesionales y para Desarrollo.

Novedades de Visual C++ versión 6

La versión 6.0 de Visual C++ de Microsoft proporciona nuevasprestaciones, tal como AutoCompletion que facilita la codificación, y Edit yContinue que optimiza las sesiones de depuración. Otras prestaciones admitenActive Platform (Plataforma activa), como Dynamic HTML (HTML Dinámico) y ActiveDocument Containment (Contención de documento activo). OLE DB Consumer yProvider Template Support (Soporte de plantilla del proveedor y consumidor OLEDB) y ADO Databinding (Atadura de datos ADO) se han diseñado como ayuda a lasbases de datos y para controlar a los desarrolladores que utilizan MFC y ATL.Estas nuevas prestaciones se detallarán a continuación.

La siguiente sección presenta el objetivo y las prestacionesespeciales de cada edición. Este libro se preparó utilizando la Edición paraDesarrollo; sin embargo, todos los materiales (excepto los que se especifican enel texto) son portables a las tres ediciones.

Edición básica

La edición básica de Visual C++ de Microsoft permitedominar fácilmente el lenguaje C++ mientras se utiliza el conjunto deherramientas de Visual C++ profesional. Esta edición contiene todas lasprestaciones de la edición profesional, excepto las optimizaciones de código,el Profiler y el enlace estático a la biblioteca MFC. Es una opción perfectapara los estudiantes y su bajo precio permite aprender C++ de formaindependiente. La licencia para la edición básica prohibe utilizar el productopara el desarrollo de software de distribución.

Edición profesional

La edición profesional de Microsoft proporciona a losdesarrolladores la licencia para distribuir programas desarrollados bajo estaherramienta, y tiene la ventaja sobre la Edición básica de añadir servicios ycontroles para plataformas Win32, incluyendo Windows 95/98 y Windows NT. Estasprestaciones permiten conseguir la interfaz de usuario gráfica del sistemaoperativo o las API de la consola.

Las nuevas prestaciones incorporadas en la EdiciónProfesional incluyen:

· Nuevas palabras clave de C++ bool, explicit, false, mutable, true y typename, para mejorar el rendimiento de C++.

· Utilización de _declspec para declarar si el atributo de la clase de almacenamiento especificada se aplica a un tipo o a una variable de un tipo.

· El compilador admite archivos COM.

· Opciones de optimización del nuevo compilador

· AppWizard actualizado que automatiza la clase de diálogo en una aplicación basada en diálogos.

     

  • Monikers asíncronos (URL) MFC (ofrece comunicaciones vía Internet para aplicaciones asíncronas).

     

· Active Documents (Documentos activos), visualizándose en la ventana de cliente completa de un navegador web (por ejemplo, Internet Explorer), o en un contenedor OLE (por ejemplo, Microsoft Word).

     

  • API de Internet para Win32 (WinInet) hace de Internet una parte integral de cualquier aplicación, simplificando los servicios FTP, HTTP y gopher de Internet.

     

· Biblioteca de plantillas activas (Active Template Library, ATL).

· Biblioteca de tiempo de ejecución de C.

· Biblioteca estándar ANSI de C++.

· ERRLOOK, que mejora los mensajes de error del sistema.

Edición para desarrollo (Enterprise Edition, usada en estetexto)

La Edición para desarrollo tiene todas las posibilidades dela Edición profesional y, además, permite a los desarrolladores crear ydepurar aplicaciones cliente/servidor para Internet e incluso intranet. Estaedición posee herramientas adicionales para trabajar con bases de datos SQL ydepurar procedimientos SQL almacenados. El sistema de control de código fuenteVisual SourceSafe simplifica el desarrollo en un entorno de equipo. Lasprestaciones exclusivas de la Edición para desarrollo incluyen:

· Servidor de transacción de Microsoft especializado.

· Herramientas de bases de datos visuales;

· Admite tipos de datos SQL extensivos.

-NOTA A menos que se indique explícitamente, lasaplicaciones de este libro se pueden compilar con cualquier versión delcompilador Por ejemplo, las aplicaciones de los Capítulos 1 al 20 sonaplicaciones estándar C ó C++ de la línea de órdenes, que se pueden ejecutaren MS-DOS o en un cuadro compatible bajo Windows 95/98 Windows NT Del mismomodo, las aplicaciones Windows desarrolladas en el Capítulo 25 se ejecutaránbajo Windows 95/98 o Windows NT

Esta última versión del compilador Visual C++ incorporamuchas prestaciones nuevas y de mayor calidad. Algunas de las más importantesincluyen el admitir el estándar AT&T C++2.1, cabeceras precompiladas,prestaciones en línea y p-código (código empaquetado).

El compilador Visual C++ de Microsoft también proporcionaherramientas para la Implementación de programas en Windows, generados paraotras plataformas. El código puede incluso tener las ventajas tanto de AppleMacintosh como de otras máquinas RISC. El compilador C++ incluye todos losarchivos de cabecera, bibliotecas y editores de diálogo y de recursosnecesarios para crear una aplicación en Windows verdaderamente consistente.Microsoft también ha incorporado los editores de recursos para mapas de bit,iconos, cursores, menús y cuadros de diálogo, directamente integrados en elentorno. Y hablando de integración, la nueva clase de asistentes (ClassWizards)ayuda a construir aplicaciones OLE utilizando las bibliotecas MicrosoftFoundation CLass (MFÑ)en tiempo récord.

En este capitulo se conocerán varios componentes delcompilador de C++, los requerimientos del sistema y recomendaciones paraestablecer el entorno de desarrollo. Este capítulo explica el sistema VisualC++ de Microsoft y muestra cómo ajustarlo a las necesidades particulares delprogramador.

Muchos de los temas que se tratan en este capítulo se veráncon mayor detalle a lo largo del libro. Por ejemplo, hay capítulos específicossobre la biblioteca de clases Microsoft Foundation Class, ClassWizards(asistentes de clases), OLE y demás.

 

Hardware recomendado

 

Esta sección indica las recomendaciones hardware y softwareque ayudarán a obtener la mayoría de las salidas del compilador Visual C++ deMicrosoft. Muchas de las sugerencias pretenden mejorar el rendimiento completodel sistema, mientras que otras intentan hacer el producto más agradable deutilizar.

Requisitos mínimos hardware y software

 

El compilador Visual C++ estándar de Microsoft funcionaráen un gran rango de computadoras con procesadores Intel.

 

NOTA- Hay versiones especiales del compilador Visual C++ paralos sistemas MIPS & DEC Alpha AXP y Macintosh.

La siguiente lista muestra los requerimientos hardware ysoftware mínimos necesarios para ejecutar la versión de 32 bits del compiladorVisual C++ de Microsoft:

· Microsoft Windows 95/98 o Windows NT.

· Microsoft Visual C++

· Intel 486 o superior

· l6MB de RAM.

· Pantalla con resolución 800 x 600 o superior

· 20 MB de espacio de disco fijo libre.

· Ratón u otro periférico para señalar.

· InstallWizard está diseñado para computadoras típicas de desarrollo, lo que significa un procesador Pentium y una resolución de 800 x 600 o superior. Se puede ejecutar lnstallWizard en una pantalla de 640 x 480, pero es posible que se necesite disponer de ventanas diferentes para ver toda la información.

 

Hardware y Software recomendados

Los requerimientos software y hardware mínimos no siempreson la opción óptima para la facilidad de uso, rendimiento y disfrute delproducto completo. Recomendamos el siguiente perfil de sistema para optimizar elciclo de desarrollo de programas en C y C++.

 

· PC con procesador Pentium, a velocidad de 200MHz (o superior).

· 32 MB de RAM.

· 1GB de espacio de disco fijo.

· Monitor Super VGA.

· Unidad de disco de alta densidad (3,5 pulgadas).

· Unidad de CD-ROM (para documentación en línea).

· Ratón lntelliPoint de Microsoft.

Será conveniente un microprocesador rápido que puedamanejar el tamaño y complejidad de las aplicaciones Windows avanzadas. Lacantidad de memoria maximiza el rendimiento completo tanto de Visual C++ deMicrosoft como del entorno Windows (también se puede obtener un aumento de esterendimiento teniendo gran cantidad de espacio de disco libre).

Aparecen dos sistemas operativos como nuevos estándares paralos PC de 32 bits; Windows 95/98, o su primo más robusto, Windows NT. Si no setiene actualizado Windows 95/98 o Windows NT, se debería hacer antes deinstalar el compilador de C++ de Microsoft.

Las mejoras realizadas a Windows 95/98 y a Windows NT,proporcionan las prestaciones y el rendimiento necesario para crear aplicacionesde gran actualidad en Windows. Conforme se desarrollen estas aplicaciones en unentorno gráfico, se apreciará la resolución de los monitores Super VGA. Serecomienda comprar un monitor con una pantalla tan grande como sea posible.

 

Instalación habitual de Windows

La instalación del compilador Visual C++ de Microsoft serealiza casi automáticamente. Sin embargo, existen algunas preguntas que habráque responder. En esta sección se echará un vistazo a una instalación típicapara la versión de 32 bits del compilador.

1. Ejecútese el programa SETUP.ExE del primer disco o del CD-ROM de Visual C++, desde Windows 95/98 o Windows NT.

2. Se le proporcionará una serie de opciones para la instalación, tal como Typical, Custom, Mínimum o CD-ROM. La cantidad de espacio de disco fijo necesaria depende de la opción seleccionada. Se recomienda la instalación Typícal. También es posible establecer la partición del disco fijo o el subdirectorio donde se va a realizar la instalación.

3. Se le pedirá que introduzca el Nombre, Organización y Código del Producto. Esta información debe introducirse con cuidado.

4. En este punto, los archivos se copiarán de los discos o el CD-ROM al disco fijo. Se puede visualizar el proceso mostrando el cuadro de diálogo File Copy Process. Esta instalación tardará unos 20 minutos en un Pentium a 200MHz utilizando una unidad de CD-ROM 8x.

5. Cuando se hayan instalado todos los archivos, habrá que indicar si se va a modificar la configuración ahora o más tarde. Se recomienda la primera opción: make changes now and backup current version (realice los cambios ahora y vuelva a la versión actual).

6. Se recibirá una indicación para registrar todas las variables del entorno.

Ésta aparecerá en forma de cuadro de verificación, con el cuadro ya verificado. En este momento, se acepta el que hay por omisión: and register the environment variables (Y registre las variables del entorno). Registrando las variables del entorno, se le proporcionará al compilador una información muy importante sobre el sistema.

7. Con la instalación terminada, reinicie el sistema completo para que todos los cambios tengan efecto.

 

 

Documentación

La documentación en línea de Visual C++ consta de QuickReference (Referencia rápida) y Books Online (Documentación en línea). LaReferencia rápida permite localizar rápidamente la información mientras seestá programando. La Documentación en línea es el conjunto de documentaciónpara Visual C++ en formato en línea. Todos los temas de Referencia rápidatienen un enlace a la Documentación en línea, donde está disponible lainformación completa.

 

Dependiendo de la opción de instalación que se seleccione,Visual C++ instalará los archivos de Referencia rápida en el disco fijo,mientras que los archivos de la Documentación en línea pueden permanecer en elCD-ROM. (Nota: seleccione esta configuración de instalación si necesitaconservar espacio en el disco fijo.) Se puede personalizar dónde establecer losarchivos o dónde obtener la información, o ir directamente a Books Online(Documentación en línea) para la ayuda sensible al contexto (FI). Los temasque cubren incluyen:

 

     

  • Forma de utilizar los Books Online (Documentación en línea).

     

     

  • Guías de usuario.

     

· Microsoft Foundation Class (MFC).

· Programación con la biblioteca de clases Microsoft Foundation Class.

· Referencia a la biblioteca de clases.

· Ejemplos de MFC.

· Notas técnicas de MFC.

     

  • C/C++

     

· Técnicas de programación.

· Referencia al lenguaje C.

· Referencia al lenguaje C++

· Referencia a la biblioteca en tiempo de ejecución.

· Referencia al flujo de E/S.

· Referencia al preprocesador.

· Ejemplos de C/C++

· Win32 Software Development Kit (SDK). (Kit de desarrollo de software para Win32.)

· Funciones API 32.

· Referencia del programador en Win32.

· Buzones de Windows.

· OLE Software Development Kit (SDK) (Kít de desarrollo de software para OLE.)

 

Directorios

La Tabla 1.1 muestra el grupo típico de subdirectorios parala instalación del compilador Visual C++, realizado en el subdirectorio MSVC.

 

También se encontrarán varios archivos README en elsubdirectorio MSDEV. Estos archivos se utilizan para proporcionar informaciónsobre la última versión (y errores) del compilador.

 

Localización Objetivo

 

BIN Archivos ejecutables y herramientas de desarrollo necesarias para implementar aplicaciones de 32 bits.

HELP Archivos de ayuda.

INCLUDE Archivos de cabecera y de tiempo de ejecución de C++

LIB Bibliotecas de Win32 SDK y de tiempo de ejecución de C++

MFC Microsoft Foundation Class (MFC).

Archivos de Biblioteca

OLE Archivos para el desarrollo de aplicaciones OLE.

PROJECTS Subdirectorio utilizado para organizar los proyectos de desarrollo.

TEMPLATES Subdirectorio utilizado para organizar las plantillas de objetos.

SAMPLES Programas de ejemplo.

 

 

 

 

 

El sistema de desarrollo

El compilador Visual C++ de 32 bits de Microsoft para Windows95/98 y Windows NT incorpora nuevas herramientas de desarrollo de Windowscompletamente integradas y una interfaz visual. Por ejemplo, las capacidades dedepuración del CodeView original de Microsoft son ahora directamente accesiblesdesde el depurador integrado del compilador Las secciones siguientes muestranaquellas utilidades que incorpora directamente el compilador Visual C++ deMicrosoft.

El nuevo depurador integrado

Microsoft extrae directamente la potencia de su depuradorCodeView original en la plataforma de Visual C++ y la coloca en su nuevodepurador integrado. Al depurador se accede desde el menú Debug (Depurar). Eldepurador integrado permite ejecutar programas en un solo paso, visualizar ycambiar contenidos de las variables, e incluso volver a las secciones de código.Será de gran ayuda para aquellos programas que se compilan, pero que no pareceque realizan lo que se esperaba.

Los nuevos editores de recursos integrados

A estos editores se accede desde el menú Resource (Recurso).Los editores de recursos permiten diseñar y crear recursos de Windows, comomapas de bits, cursores, iconos, menús y cuadros de diálogo. Los recursospermiten crear interfaces de usuario visualmente atractivas para lasaplicaciones. En las próximas secciones, se verá información específicasobre cuatro de los editores de recursos más conocidos.

El editor de cuadros de diálogo

El editor Cuadro de diálogo es una herramienta de desarrollográfico importante que permite crear rápida y fácilmente cuadros de diálogode aspecto profesional. El editor Cuadro de etiquetas de los cuadros de diálogo,marcos, selecciones de opciones y cuadros de verificación, ventanas de texto ybarras de desplazamiento.

El editor Cuadro de diálogo permite combinar numerososcontroles en los cuadros de diálogo personalizados. Los controlescombinan una representación gráfica visual de una característica con unconjunto predefinido de propiedades que se puede personalizar Por ejemplo, loscuadros de verificación, los botones de opción y los cuadros de lista sontodos los formatos de controles de Windows.

Los editores de imágenes

Los editores de imágenes gráficas permiten crear fácilmentemapas de bits, iconos y cursores personalizados. Un mapa de bit es un dibujo dealgo (por ejemplo, una exclamación utilizada en un mensaje de advertencia). Unicono es una imagen en color pequeña utilizada para representar una aplicacióncuando se minimiza. Visual C++ incluso permite utilizar un editor de imagen paracrear cursores personalizados. Por ejemplo, se podría diseñar un paquetefinanciero con un cursor similar al signo de dólar Los iconos, cursores y mapasde bits personalizados se pueden guardar en un archivo con extensión .RC y sepueden utilizar en archivos de órdenes de recursos. Se conocerá la forma deutilizar estos recursos en los Capítulos 20 al 23.

El editor binario

El editor binario permite editar un recurso a nivel binarioen formato hexadecimal o ASCII. También puede utilizar la orden Find (Buscar)para buscar cadenas ASCII o bytes hexadecimales, y utilizar expresionesregulares con la orden Find para que se ajusten a un patrón. Sólo se deberlautilizar el editor binario cuando se necesite visualizar o realizar pequeñoscambios sobre los recursos personalizados o tipos de recursos que no soporte elentorno Microsoft Developer Studio.

El editor de cadenas

Una tabla de cadenas es un recurso de Windows que contieneuna lista de identificadores (ID), valores y nombres para todas las cadenas dela aplicación. Por ejemplo, el indicador de la barra de estado se encuentra enla tabla de cadenas. Una aplicación sólo puede tener una tabla de cadenas. Lastablas de cadenas facilitan la localización de la aplicación en diferenteslenguajes Si todas las cadenas están en una tabla de cadenas, se puedelocalizar la aplicación traduciendo las cadenas (y otros recursos) sinmodificar el código fuente.

Herramientas adicionales

Las herramientas adicionales de Visual C++ que estánintegradas en el compilador se encuentran en el menú Tools (Herramientas).Estas incluyen Spy++, MFC Tracer, Control Wizard, AVI Editor, DataObjectViewer y ActiveX Control Test Container. La utilidad Spy++ será de gran ayudacuando se trabaje con aplicaciones Windows de 32 bits.

 

Active Control Test Container (Contenedor de prueba decontroles activos)

La herramienta Test Container (Contenedor de prueba) es unaaplicación diseñada por Microsoft que permite probar rápidamente loscontroles personalizados. Las propiedades y prestaciones del control se puedenmodificar en el contenedor de prueba.

API Text Viewer (Visor de Texto API)

API Text Viewer permite visualizar constantes, variables,declaraciones y tipos que se pueden copiar desde archivos API a aplicaciones deVisual Basic.

AVI Editor (Editor AVI)

AVI Editor permite visualizar, editar y unir archivos AVI.

Data Object Viewer (Visor de objetos de datos)

Data Object Viewer muestra la lista de los formatos de datosofrecidos por los objetos de datos OLE y ActiveX creados por el Portapapeles opor operaciones de arrastrar y pegar

DDE Spy

DDE Spy se utiliza para hacer un seguimiento de todos losmensajes.

DocFile Viewer (Visor de DocFile)

DocFile Viewer muestra los contenidos de un archivo compuestopequeño.

Error Lookup

Esta herramienta permite visualizar un análisis detallado deun mensaje de error.

Help Walk Utility

La utilidad help Walk enumera los bloques de memoria en unapila específica.

 

 

Help Workshop

Esta herramienta ofrece el marco de trabajo adecuado paranavegar desde las interfaces de usuario de una aplicación a los contextos deayuda. La Implementación de la navegación adicional dentro del archivo deAyuda forma parte del dominio de la edición de ayuda y no del dominio de laprogramación. El objetivo de esta utilidad es describir el proceso generalsobre la edición de archivos de Ayuda.

Cliente OLE, Herramientas y Vistas

El OLE Viewer muestra los objetos OLE y ActiveX instalados enla computadora y las interfaces que admiten. También permite editar el registroy ver las bibliotecas de tipos.

Process Víewer (Visor del proceso)

El Process Viewer permite establecer y visualizar rápidamentetodas las opciones necesarias para seguir los procesos elementos de proceso y deintervalo temporal del procesador actual. Para iniciar el Process Viewersimplemente se pulsa dos veces con el ratón sobre el icono Process Viewer en elcuadro de grupo Visual C++.

El Process Viewer puede ayudar a resolver algunas cuestiones:

· ¿Cuánta memoriaasigna el programa en distintos puntos de su ejecución?

· ¿Cuánta memoria estásiendo paginada?

· ¿Qué procesos yelementos de proceso están utilizando el mayor tiempo de CPU?

· ¿Cómo se ejecuta elprograma para diferentes prioridades del sistema?

· ¿Qué sucede si unelemento de proceso o un proceso se detiene respondiendo a un DDE, un OLE o unaE/S canalizada?

· ¿Qué porcentaje detiempo se emplea en la ejecución de llamadas API?

Resource Viewer (Visor de recursos)

Esta herramienta permite acceder a los recursos del proyecto.

ROT Viewer (Visor ROT)

ROT Viewer muestra información sobre los objetos ActiveX yOLE que actualmente están en memoria.

 

Spy++

Spy++ es una utilidad que proporciona una visión gráfica delos procesos, elementos de proceso, ventanas y mensajes de ventanas del sistema.

 

Stress Utility (Utilidad Stress)

La aplicación Stress permite la adquisición de recursos delsistema para las pruebas difíciles con pocos recursos. Los recursos obtenidosincluyen la pila global, la pila de usuario, la pila GDI, el espacio de disco ylos descriptores de archivos. Stress ofrece las asignaciones de estos recursosde forma fija, aleatoria y dependientes del mensaje. Además proporciona variasopciones de incidencias para ayudar a localizar y reproducir los errores.

MFC Tracer

MFC Tracer es una herramienta que permite al programadorconfigurar los indicadores de seguimiento de AFX.INI. Estos indicadores seutilizan para definir la categoría de los mensajes Trace que se envían desdela aplicación a la ventana de depuración. Por tanto, Tracer es una herramientade depuración. La herramienta MFC Tracer se utilizará al desarrollaraplicaciones MFC en los Capítulos 23 al 27.

UUID Generator (Generador UUID)

UUID Generator se utiliza para generar un identificador único(UUID) que permite que las aplicaciones del cliente y del servidor se reconozcanmutuamente.

WinDiff

La utilidad WinDiff también se encuentra en el grupo VisualC++ Esta herramienta permite comparar gráficamente y modificar dos archivos odos directorios. Todas las opciones de WinDiff funcionan como sus equivalentesen el Explorador de Windows 95/98 o en el Explorador de Windows NT.

Zoomin

La utilidad Zoomin (ZOOMIN.EXE) se puede utilizar paracapturar y ampliar una parte del escritorio de Windows.

Nuevas herramientas y utilidades

El nuevo Developer Studio ha incorporado nuevas y mejoresprestaciones para hacerlo más fácil incluso que desarrollar aplicaciones declase universal. Las nuevas incorporaciones incluyen la posibilidad de acceder aVisual J++ 1.1 y Visual lnterDev, así como Visual C++ 6.0 y MSDN.

Automatización y macros

Con 1as secuencias de ordenes (Script) de Visual Basic sepueden automatizar rutinas o tareas repetitivas. Mientras que el almacenamientode una macro permite editar de forma sencilla y rápida. Developer Studiopermite manipular componentes Studio como objetos, permitiendo automatizartareas que incluyen apertura, edición y cierre de documentos o modificar eltamaño de las ventanas. También se pueden crear entradas integradas utilizandoel modelo de objetos de Developer Studio.

Visor de clases (Classview)

El nuevo Visor de clases mejorado funciona tanto con lasclases de Java como con las clases de C++. Se pueden crear nuevas clasesutilizando la MFC la ATL o clases personalizadas. El visor de clases tambiénpresenta la posibilidad de visualizar y editar interfaces para objetos COMimplementados en MFC o ATL. También se pueden utilizar carpetas para organizarlas clases de la forma deseada.

Barras de herramientas y menús personalizables

 

Developer Studio facilita la personalización de las barrasde herramientas y de los menús para ajustarse a la forma de trabajo del usuarioPor ejemplo. se puede:

· Añadir un menú a una barra de herramientas.

· Añadir o eliminar órdenes de un menú o botones de una barra de herramientas.

· Cambiar un botón de una barra de herramientas dentro de una orden de un menu.

· Copiar un botón de un menú o de una barra de herramientas desde una barra de herramientas a otra, de forma que siempre esté accesible.

· Diseñar nuevas barras de herramientas o menús.

· Personalizar un menú o una barra de herramientas existente.

· Volver a asignar una orden de un menú, convirtiéndola en un botón de una barra de herramientas.

Conectivídad con Internet

La visualización de páginas Word Wide Web en el DeveloperStudio es bastante rápida con el novedoso InfoViewer o con el propio navegadorweb registrado para visualizar Microsoft en el Web. Con una dirección web en laventana URL, se puede pulsar con el ratón la dirección para visualizar la páginaweb. Esta prestación permite a los usuarios de Visual Studio asegurar laobtención de las últimas noticias, documentación, localizaciones y/o mejorasconforme se encuentren disponibles.

Archivos y áreas de trabajo de proyectos

El nuevo sistema de proyecto flexible de Developer Studiopermite, de forma sencilla, disponer de un espacio de trabajo con diferentestipos de proyectos. Por ejemplo, se puede crear un espacio de trabajo quecontenga un proyecto de Visual ínterDev y una applet (pequeña aplicación) deJ++.

NOTA- Los archivos del espacio de trabajo tienen ahora laextensión.DSW (anteriormente era.MDP). Los archivos del proyecto tienen ahorala extensión DSP (anteriormente era.MAk).

 

Ahora existen dos tipos de archivos Build: internos (.DSP) yexternos (.MAK). Todos los archivos DSP se crean al crear un nuevo proyectodentro del entorno Developer Studio o cuando convierte un proyecto de una versiónanterior. (Nota: los archivos DSP no son compatibles con NMAKE.) Se puede crearun archivo externo.MAK, compatible con NMAKE, seleccionando la opción ExportMakefile del menú Project.

Los proyectos pueden incluir ahora documentos activos, comoarchivos de hojas de cálculo y documentos de Word. Incluso se pueden editar sinabandonar el entorno integrado de desarrollo de Visual Studio.

Cuando se inicia un nuevo espacio de trabajo, el DeveloperStudio crea un archivo con el nombre MINOMBREESPACIOTRABAJO.DSW, que tiene unanueva extensión, . DSW. Los archivos del espacio de trabajo ya no incluyendatos específicos de la computadora local. En este momento es posible:

· Añadir el archivo del espacio de trabajo a un proyecto fuente de control definido previamente.

· Copiar un espacio de trabajo de otra computadora o de un directorio de la red y abrir directamente la copia del espacio de trabajo, sin crear un nuevo archivo de espacio de trabajo para la computadora local.

· Utilizar editores de recursos.

· Utilizar el WizardBar con cuadros de diálogo para enlazar el código con los elementos visuales del programa.

 

 

 

 

 

Asistentes (Wizards)

El nuevo Developer Studio de Microsoft incorpora muchosasistentes nuevos, incluyendo algunos para el nuevo Visual J++ integrado y lospaquetes Visual InterDev (disponibles sí se tienen instalados estos paquetes).Se pueden utilizar estos asistentes para crear archivos, controles y nuevostipos de proyectos.

Prestaciones importantes del compilador

El compilador Visual C++ contiene muchas mejoras, nuevasprestaciones y opciones útiles. Las siguientes secciones introducen estasmejoras y explican brevemente sus utilizaciones.

Código P (P-code)

El código-P (abreviatura de "códigoempaquetado") se genera para optimizar la velocidad y el tamaño del código.El código-P puede reducir de forma significativa el tamaño de un programa y lavelocidad de ejecución en más de un 60 por lOO. Mejor aún, todo esto seejecuta simplemente cuando se activa una opción específica del compilador Estosignifica que cualquier código escrito en C o en C++ se puede compilarnormalmente o con código-P.

Esta tecnología compila un código fuente de una aplicacióndentro del "código objeto interpretado", que es una representación máscondensada del código objeto y con un nivel mayor El proceso finaliza cuando seenlaza un pequeño módulo intérprete con la aplicación.

Sin embargo, la utilización eficiente de esta tecnologíarequiere cierta habilidad. Como el intérprete genera código objeto en tiempode ejecución, el código-P se ejecuta más lentamente que el código objetoorigen. Con una utilización muy cuidadosa de la directiva #pragma, una aplicaciónpuede generar código-P para funciones críticas en cuanto a espacio y pasar agenerar código origen para funciones de velocidad crítica.

Las mejores candidatas para la generación de código-P sonaquellas rutinas que tratan con la interfaz de usuario, y como muchasaplicaciones Windows emplean el 50 por 100 de su tiempo generando lainterfaz de usuario, el código-P proporciona las características derendimiento óptimas.

Cabeceras y tipos precompilados

Visual C++ coloca tipos genéricos, prototipos de funciones,referencias externas y declaraciones de funciones miembro en unos archivosespeciales denominados archivos de cabecera. Éstos contienen muchas de lasdefiniciones críticas necesarias por los múltiples archivos fuente que actúanconjuntamente para crear la versión ejecutable del programa. Algunas de laspartes de estos archivos de cabecera normalmente vuelven a ser compiladas porcada módulo que la incluye. Desafortunadamente, repetir la compilación departe del código puede hacer más lento el compilador.

Visual C++ aumenta la velocidad del proceso de compilación,permitiendo precompilar los archivos cabecera. Aunque el concepto de cabecerasprecompiladas no es nuevo, la forma en que Microsoft ha implementado estacaracterística sí lo es. La precompilación guarda el estado de la compilaciónde una aplicación en un cierto punto y representa la relación que se estableceentre el archivo fuente y la cabecera precompilada. Es posible crear más de unarchivo de cabecera precompilado por archivo fuente.

Una de las mejores aplicaciones de esta tecnología afecta alciclo de desarrollo de una aplicación que tiene frecuentes cambios en el códigopero no frecuentes definiciones de la clase base. Si el archivo de cabecera estáprecompilado, el compilador puede concentrar su tiempo en los cambios del códigofuente. Las cabeceras precompiladas también proporcionan un aumento en eltiempo de compilación para aplicaciones con cabeceras que constan de grandesporciones de código para un módulo dado, como suele suceder con los programasen C++.

El compilador de Visual C++ supone que el estado actual delentorno del compilador es el mismo que cuando se compilaron algunas de lascabeceras precompiladas. El compilador mostrará un aviso si detecta algunainconsistencia. Tal inconsistencia podría resultar de una modificación en losmodelos de memoria, de un cambio en el estado de las constantes definidas o dela elección de las diferentes opciones para la depuración o la generación decódigo.

A diferencia de otros muchos compiladores de C++, elcompilador de C++ de Microsoft no limita la precompilación a los archivos decabecera. Como el proceso permite precompilar un programa hasta un puntoespecifico, puede incluso precompilar el código fuente. Esto es extremadamentesignificativo para los programas en C++ ya que contienen la mayoría de lasdefiniciones de la función miembro en archivos cabecera. En general, laprecompilación está reservada para aquellas partes del programa que sonconsideradas estables; se diseña para minimizar el tiempo necesario paracompilar las partes del programa en el desarrollo.

La biblioteca Microsoft Foundation Class (MFC)

Las aplicaciones Windows son fáciles de utilizar, pero no dedesarrollar. Muchos programadores están cansados de tener que manejar cientosde funciones API de Windows, que son necesarias para escribir aplicacionesWindows.

La solución de Microsoft a este paso de aprendizaje angostoes la biblioteca fundation Class orientada a objetos. Las clases reutilizablesde C++ son mucho más fáciles de dominar y utilizar La biblioteca MicrosoftFoundation Class (MFC) tiene todas las ventajas de la abstracción de datosofrecida por C++ y su uso simplifica la programación en Windows. Losprogramadores principiantes pueden utilizar las clases a modo de un"recetario" y los programadores experimentados en C++ pueden extenderlas clases o integrarlas en su propia jerarquía de clases.

La biblioteca MFC contiene clases para la gestión de objetosWindows y ofrece una serie de clases de propósito general que se puedenutilizar en aplicaciones tanto MS-DOS como Windows. Por ejemplo, existen clasespara crear y gestionar archivos, cadenas, tiempo, almacenamiento permanente ymanejo de excepciones.

En efecto, la biblioteca MFC representa casi todas lasprestaciones API de Windows e incluye un código sofisticado que simplifica elprocesamiento de mensajes, diagnósticos y otros detalles que son partesnormales de todas las aplicaciones Windows. Esta combinación lógica y elaumento de funciones API de Windows tiene diez ventajas claves:

     

  • La encapsulación de las API de Windows es lógica y completa. La biblioteca MFC presta apoyo para todas las funciones API de Windows utilizadas con frecuencia, incluyendo funciones de ventanas; mensajes; controles; menús; cuadros de diálogo; objetos GDI (interfaz de dispositivos gráficos) tales como fuentes, brochas, lápices y mapas de bits; enlace de objetos y la interfaz de documento múltiple (MDI).

     

· Las funciones MFC son sencillas de aprender Microsoft ha hecho un gran esfuerzo para mantener los nombres de las funciones MFC y los parámetros asociados son lo más similar posible a las clases padre API de Windows. Esto minimiza la confusión para los programadores de Windows experimentados que deseen obtener las ventajas de la plataforma MFC simplificada. También facilita a los programadores que se inician en Windows el crecimiento dentro del superconjunto de las funciones API de Windows cuando se esté preparado o cuando la aplicación lo requiera.

· El código C++ es más eficiente. Una aplicación utilizará sólo un poco de RAM extra cuando utilice las clases de la biblioteca MFC. La velocidad de ejecución de una aplicación MFC es casi idéntica a la misma aplicación escrita en C y utilizando el estándar API de Windows.

· La biblioteca MFC ofrece un manejo automático del mensaje. La biblioteca Microsoft Foundation Class elimina una fuente frecuente de errores de programación, el bucle del mensaje API de Windows. Las clases MFC están diseñadas para manejar de forma automática cada uno de los mensajes de Windows. En lugar de utilizar las instrucciones sensibles al contexto estándares, cada uno de los mensajes de Windows se proyecta directamente a una función miembro, que toma la acción apropiada.

· La biblioteca MFC permite diagnósticos propios. Incorporada a la biblioteca MFC se encuentra la posibilidad de realizar diagnósticos propios. Esto significa que puede verter información sobre varios objetos a un archivo y validar un miembro del objeto variable, todos en un formato fácil de entender

· La biblioteca MFC incorpora una arquitectura robusta. Anticipando la gran necesidad del estándar ANSI de C, la biblioteca Microsoft Foundation Class ya incorpora una amplia arquitectura del manejo de excepciones. Esto permite que un objeto MFC recupere elocuentemente a partir de condiciones de errores estándar, tales como "sin memoria", selección de opción no válida y problemas cargando el recurso o el archivo. Cada componente de la arquitectura es más compatible con las recomendaciones ANSI de C propuestas.

· La biblioteca MFC ofrece la introducción de objetos dinámicos. Esta prestación extremadamente potente retrasa la introducción de un objeto asignado dinámicamente hasta el tiempo de ejecución. Esto permite manipular un objeto sin tener que preocuparse de su tipo de datos subyacente. Como la información sobre el tipo de objeto se devuelve en tiempo de ejecución, el programador está exento de un nivel de detalle adicional.

· La biblioteca MFC puede coexistir en armonía con aplicaciones de Windows basadas en C. La prestación más importante de la biblioteca Microsoft Foundation Class es la posibilidad de coexistir con aplicaciones de Windows basadas en C que utilizan las API de Windows. Los programadores pueden utilizar una combinación de clases MFC y llamadas a API de Windows dentro del mismo programa. Esto permite que una aplicación MFC se desarrolle fácilmente dentro del código orientado a objetos de C++ como la experiencia o la demanda requiera. Este entorno transparente es posible debido a los convenios de denominación comunes entre las dos arquitecturas. Esto significa que las cabeceras MFC, los tipos y las definiciones globales no tengan conflictos Con los nombres de las API de Windows. La gestión transparente de la memoria es otro componente clave para que esta relación tenga éxito.

· La biblioteca MFC se puede utilizar con MS-DOS La biblioteca Microsoft Foundation Class se diseñó específicamente para desarrollar aplicaciones en Windows. Sin embargo, muchas de las clases proporcionan frecuentemente los objetos necesarios para la manipulación de cadenas y de archivos de E/S. Por esta razón, estas clases de propósito general pueden utilizarlas tanto los desarrolladores de Windows como los de MS-DOS.

· La biblioteca MFC y los asistentes. Los asistentes de Control y de Clases sólo crean un código compatible con MFC. Estos desarrolladores de programas dinámicos son necesarios para el desarrollo de aplicaciones OLE.

Funciones inline (Funciones en línea)

El compilador de Visual C++ de Microsoft admite completamentelas funciones en línea. Esto significa que las funciones de cualquier tipo ocombinación de instrucciones pueden ser expandidas en línea. Muchos de loscompiladores de C++ conocidos restringen la característica en línea a ciertostipos de instrucciones o expresiones (por ejemplo, la opción en línea podríaser ignorada por cualquier función que contenga una instrucción switch, whileo for). El compilador de Visual C++ permite controlar las rutinas más críticasen velocidad (incluyendo los constructores o funciones miembro de las clases muypocas veces utilizadas) sin restringir su contenido. Esta opción se estableceen el menú Project, seleccionando la opción Settings..., a continuación lacarpeta C/C++ y, finalmente, Optimizations en la lista Category.

Opciones del compilador

Los compiladores de Visual C++ utilizados en este libro soncompiladores de optimización global que permiten obtener todas la ventajas delas distintas opciones de velocidad o tamaño del código para cada tipo deprograma desarrollado. En esta sección, se tratarán aquellas opcionesdirectamente relacionadas con el compilador C++ de Microsoft de 32 bit, versión4.0. Si se está utilizando un compilador de 16 y/o 32 bit, versión 2.0, lasopciones serán similares, pero situadas en diferentes fichas.

Las siguientes opciones del compilador permiten optimizar elcódigo del ejecutable en tamaño, velocidad o tiempo de desarrollo. Si no seobserva un aumento del rendimiento apreciable, es posible que la aplicación deprueba no contenga suficiente código. Todas las opciones se establecen a partirdel menú Build seleccionando la opción de menú Settings.

Generales

En la ficha General se puede especificar la utilización o node la biblioteca Microsoft Foundation Class. También se pueden indicarlos directorios de salida para archivos compilados en C/C++ intermedios yfinales.

Debug (Depuración)

En la ficha Debug se puede especificar la ubicación de unarchivo ejecutable junto con el directorio de trabajo, los argumentos opcionalesdel programa y un nombre de archivo y camino para ejecutables remotos. Además,utilizando la lista Category, se pueden especificar las bibliotecas de enlacedinámicas adicionales (DLL).

Custom Build (Construcción personalizada)

En la ficha Custom Build se pueden especificar herramientaspersonalizadas para utilizar en proyectos de desarrollo. Esto incluyeherramientas para la ejecución del archivo resultante de la configuración delproyecto.

La ficha C/C++ permite seleccionar de entre las siguientescategorías: General, C++ Language (Lenguaje C++), Code Generation (Generaciónde código), Customization (Personalización), Listing Files (Listado dearchivos), Optimizations (Optimizaciones), Precompiled Headers (Archivos decabecera precompilados) y Preprocessor (Preprocesador).

 

General

 

La categoría General permite definir el nivel deadvertencias, especificar la información de depuración, establecer lasoptimizaciones del compilador indicar las definiciones del preprocesador ylistar las opciones del proyecto.

 

C++ Language (Lenguaje C++)

 

La categoría C++ Language (Lenguaje C++) permite especificarel método de representación, establecer el manejo de excepciones, el tipo deinformación en tiempo de ejecución y los cambios en los desarrollos, así comolistar las opciones del proyecto.

Code Generation (Generación de código)

La categoría Code Generation (Generación de código)permite determinar el microprocesador (de 80386 a Pentium), indicar losconvenios de llamada, especificar la biblioteca de tiempo de ejecución, anotarla alineación de los miembros de la estructura y listar las opciones delproyecto.

Customization (Personalización)

La categoría Customization permite activar o desactivar lossiguientes elementos:

· Extensiones del lenguaje.

· Enlace a nivel de función.

· Cadenas duplicadas.

· Reconstrucción mínima.

· Compilación incremental.

· Supresión del mensaje de información y la identificación.

Listing Files (Listado de archivos)

La categoría Listing Files (Listado de archivos) permite la generación de información de visualización. Además, se puede establecer el destino del archivo de visualización. En este archivo se permiten variables locales. Los tipos de archivo se pueden establecer de forma opcional. Se listan las opciones del proyecto.

 

 

Optimizations (Optimizaciones)

La categoría Optimizations (Optimizaciones) permite definir varias optimizaciones del código, tales como velocidad, tamaño, y otras. También se puede indicar la expansión de las funciones en línea. Se listan las opciones del proyecto.

Precompiled Headers (Archivos de cabecera precompilados)

La categoría Precompiled Headers (Archivos de cabecera precompilados) permite la utilización de archivos de cabecera precompilados. Estos son archivos con extensiones PCH. Los archivos de cabecera precompilados aumentan la velocidad del proceso de enlace y compilación, pero deben eliminarse del directorio donde se encuentra el proyecto completo debido a su gran tamaño. Se listan las opciones del proyecto.

Preprocessor (Preprocesador)

La categoría Preprocessor (Preprocesador) permite indicar las definiciones del preprocesador También es posible incluir directorios adicionales (subdirectorios que contienen los archivos de cabecera) e ignorar caminos estándar. Se listan las opciones del proyecto.

Línk (Enlace)

La ficha Link (Enlace) permite seleccionar de entre las siguientes categorías: General (General), Customization (Personalización), Debug (Depuración), Input (Entrada) y Output (Salida).

 

 

 

General (General)

En la categoría General se pueden especificar el nombre y la extensión del archivo. Lo más normal es que la extensión sea EXE. Sin embargo, en este libro se aprenderán a desarrollar aplicaciones con extensiones de archivo.DLL y .SCR. También se pueden introducir los módulos de objetos/biblioteca. Estos son muy importantes para las aplicaciones multimedia, donde se supone que no se utilizan bibliotecas específicas. También se pueden incluir los siguientes elementos:

· Depuración de información.

· Enlace incremental.

     

  • Asignación de un perfil.

     

· Ignorar las bibliotecas por omisión.

· Generación de un archivo de seguimiento.

Customization (Personalización)

La categoría Customization permite incluir los siguientes elementos:

· Enlace incremental.

· Base de datos del programa.

· Nombre de los archivos de salida.

     

  • Proceso de impresión de mensajes.

     

· Identificación de inicio.

Debug (Depuración)

La categoría Debug permite la generación de un archivo de seguimiento y la información de depuración en varios formatos.

lnput (Entrada)

La categoría Input permite la especificación de módulos de objetos/biblioteca. De forma adicional, se indican las referencias a símbolos y los nombres de los archivos de resguardo de MS-DOS.

 

Output (Salida)

La categoría Output permite establecer las direcciones base, el punto de entrada, la ubicación de la pila y la información de la versión para el proyecto.

Resources (Recursos)

La ficha Resources (Recursos) permite asignar el archivo de recursos (normalmente un archivo con extensión RES).

Las prestaciones adicionales incluyen el lenguaje, los directorios de inclusión de recursos y las definiciones del preprocesador

OLE Types (Tipos OLE)

La ficha OLE Types (Tipos OLE) permite especificar el nombre del archivo de salida, el nombre del archivo de cabecera de salida, las definiciones del preprocesador y el identificador de inicio.

 

Browse Info (información de exploración)

La tecla Browse Info permite especificar el nombre del archivo de información de exploración. Además, se pueden comprobar el archivo de información de exploración (Browse Info) y el identificador de inicio.

 

 

 

Representación del EID (Entorno integrado de desarrollo)

 

El EID de Microsoft Visual C++ es un Entorno integrado dedesarrollo que permite, de forma sencilla, crear, abrir, visualiza editar,guardar, compilar y depurar todas las aplicaciones C y C++. Al tratarse de uncomponente decisivo de Microsoft Development Studio, el entorno de C/C++ operacomo una parte más dentro de la familia completa de lenguajes de Microsoft,incluyendo Visual Basic y Visual J++. La ventaja de esta colección de lenguajesde desarrollo radica en la facilidad de aprendizaje y uso que proporciona unconjunto compacto de herramientas y utilidades de desarrollo. ¡Por reglageneral, excepto para la sintaxis específica del lenguaje, una vez que seentienden la utilidades de un entorno (por ejemplo, Visual C++), automáticamentese tiene conocimiento de cómo utilizar las otras! La integración del lenguajede Microsoft Development Studio, permite desarrollar y combinar fácilmentearchivos fuentes de múltiples lenguajes en un único programa.

Al igual que todas las componentes del Development Studio, elEID de Visual C++ contiene opciones para personalizar el entorno de trabajo enfunción de las preferencias personales y ajustarse a los requerimientoshardware específicos para la aplicación. Muchas de las utilidades que setratan en las siguientes secciones se presentan, de forma más detallada, en elCapitulo 3.

Inicio del EID (Entorno integrado de desarrollo) de VisualC++

El inicio del EID de Visual C++ es sencillo. Si se estáutilizando un ratón, se pulsa dos veces sobre el icono de Visual C++, queaparece en el grupo Microsoft Visual C++. La Figura 2.1 muestra la pantallainicial del EID (Entorno integrado de desarrollo) de Visual C++.

Acceso a la ayuda sensible al contexto

Se puede acceder fácilmente a la ayuda de cada utilidad delEID (Entorno integrado de desarrollo) de Visual C++, dado que toda ladocumentación del compilador se encuentra en línea. La utilización de esterecurso tan valioso es tan sencillo como colocar el cursor sobre la utilidad encuestión y pulsar la tecla F1.

No obstante, la ayuda sensible al contexto no estárestringida a las utilidades del EID de Visual C++. Si se coloca el cursor sobreuna construcción del lenguaje C/C++ y se pulsa la tecla F1, automáticamente lautilidad de ayuda muestra una descripción de la sintaxis de la construcción,una explicación de su uso y, a menudo, un ejemplo ejecutable para clarificarlo.

Este capitulo se ha diseñado para proporcionar una ampliavisión de cada una de las opciones del EID de Visual C++. No hay quedesesperarse por el número de utilidades y opciones disponibles.

Se pueden utilizar los parámetros por omisión de muchas delas posibilidades del EID de Visual C++, para hacer más fácil cl proceso depreparar y ejecutar una aplicación.

Al aumentar la experiencia e incrementar en complejidad losrequerimientos de una aplicación, gradualmente se ganará experiencia en elmanejo de las posibilidades más sofisticadas de este potente entorno. Durantela lectura de este capítulo, se puede coger un lápiz y marcar las característicasdel EID de Visual C++ que parezcan más interesantes. (cuando surja la necesidadde utilizar una de estas utilidades, fácilmente se puede volver a hacerreferencia a esta sección para obtener la explicación sobre cómo utilizar lacorrespondiente opción.

 

 

Funcionamiento de los menús

Antes de comenzar a explicar cada una de las utilidades deVisual C++, se van a examinar algunas características comunes a todos loselementos de menú. Por ejemplo, existen dos formas de acceder a los elementosde un menú. La aproximación más habitual consiste en colocar el puntero delratón sobre la opción deseada y pulsar el botón izquierdo del ratón. Lasegunda opción consiste en utilizar la tecla abreviada que aparece subrayada.Por ejemplo, se puede acceder directamente, desde el teclado, al menú File(Archivo) pulsando al mismo tiempo la tecla ALT y la letra F.

A los elementos del menú se puede acceder utilizando lamisma secuencia descrita anteriormente y, a menudo, existe un mecanismoadicional de seleccionarlos. Algunos elementos de menú se pueden activardirectamente desde cualquier lugar del entorno integrado, utilizando suscombinaciones especificas de teclas abreviadas. Si un elemento de menú disponede esta posibilidad, se muestra a la derecha del elemento en el menú, lacombinación específica de teclas abreviadas para la opción determinada. Porejemplo, la primera opción que aparece en el menú File (Archivo) es New(Nuevo)... Se puede seleccionar esta opción, de forma inmediata, pulsandosimplemente CTRL-N, sin la necesidad de seleccionar primero el menú File(Archivo).

A continuación, se muestran algunos comentarios adicionalesque conciernen al funcionamiento de los menús: primero, si un elemento de menúaparece desactivado, el entorno integrado está advirtiendo sobre el hecho deque esa opción particular no está disponible actualmente. Esto significa queel entorno integrado ha detectado que falta algún prerequisito necesario paraque esta opción particular sea válida. Por ejemplo, la opción Save (Guardar)del menú File (Archivo) estará desactivada si la ventana de edición aparecevacía. La opción detecta que no se puede guardar algo que no existe e indicaeste hecho desactivando y colocando como no disponible la orden Save (Guardar).

Segundo, cualquier elemento de menú que aparezca seguido detres puntos (...) indica una opción que, cuando se selecciona, muestra automáticamenteun cuadro de diálogo o un submenú. Por ejemplo, la orden Open... (Abrir) delmenú File (Archivo), cuando se selecciona, provoca que aparezca el cuadro de diálogoOpen (Abrir).

Por último, indicar que se pueden activar algunos elementosde menú pulsando sobre sus botones asociados en las barras de herramientas, queaparecen debajo de la barra del menú principal.

Obsérvense la utilidades tan interesantes del EID (Entornointegrado de desarrollo) que, normalmente, están disponibles a través de unaselección de menú.

Barras de herramientas acopladas o flotantes

Se puede hacer que la barra de herramientas estándar(situada justo debajo de la barra de título de Visual C++), o cualquier otrabarra de herramientas aparezca acoplada o flotante. En modo acoplado, unabarra de herramientas aparece fija a cualquiera de los cuatro bordes de laventana de la aplicación. El tamaño de una barra de herramientas no se puedemodificar cuando está acoplada.

En modo flotante, una barra de herramientas tiene unabarra de título estrecha y puede aparecer en cualquier lugar de la pantalla.Una barra de herramientas flotante aparece siempre por encima del resto deventanas. Se puede modificar el tamaño o la posición de una barra deherramienta flotante cuando se encuentra en modo flotante.

 

Para modificar una barra de herramientas acoplada en unabarra de herramientas flotante:

· Se pulsa (recuérdese que no se debe soltar el botón izquierdo del ratón) sobre la barra de título o sobre un área donde no haya botones de la barra de herramientas.

· Se arrastra la barra de herramientas desde la zona de acople hacia la posición deseada.

Para acoplar una barra de herramientas flotante:

     

  • Se pulsa (recuérdese que no se debe soltar el botón izquierdo del ratón) sobre la barra de título o sobre un área donde no haya botones de la barra de herramientas.

     

· Se arrastra la barra de herramientas hacia cualquiera de los cuatro bordes de la ventana de la aplicación.

Para situar una barra de herramientas flotante sobre una barra de herramientas acoplada:

· Se pulsa (recuérdese que no se debe soltar el botón izquierdo del ratón) sobre la barra de título o sobre un área donde no haya botones de la barra de herramientas.

· Manteniendo pulsada la tecla CTRL, se arrastra la barra de herramientas sobre cualquier área de acople dentro de la ventana de la aplicación.

El menú File (Archivo)

El menú File (Archivo) del EID de Visual C++ engloba el conjunto estándar de órdenes habituales de manipulación de archivos para la mayoría de aplicaciones de Windows. La Figura 2.2 muestra las opciones de órdenes disponibles en el menú File (Archivo).

New... (Nuevo...)

El elemento de menú New... (Nuevo...) abre una ventana nueva con un cuadro de diálogo de edición. Normalmente cualquier aplicación nueva comienza en este punto. El EID (Entorno integrado de desarrollo) automáticamente asigna un titulo y número a cada ventana que se abre. La numeración comienza por 1 y por tanto, el título de la primera ventana siempre será xxx1, el título de la segunda ventana xxx2 y así sucesivamente. xxx es una etiqueta que identifica el tipo de archivo con el que se está trabajando (código, proyecto, recurso, mapa de bits, binario, icono o cursor).

Si se tienen abiertas una serie de ventanas con títulos desde xxx1 hasta xxx6 y se decide cerrar la ventana con titulo xxx2, la siguiente vez que se seleccione la opción New..., no se volverá a utilizar este título (en este caso, xxx2). Windows asigna automáticamente el siguiente número más alto (en este ejemplo, xxx7).

La forma más rápida de abrir un nuevo cuadro de diálogo de edición es pulsar sobre el botón que se encuentra más a la izquierda de la barra de herramientas. Este botón presenta la imagen de un archivo. Se puede seleccionar directamente la opción New... (Nuevo) pulsando sobre este control.

Open... (Abrir..)

A diferencia de New..., que abre una ventana con un cuadro de diálogo de edición para un archivo que previamente no existe, el elemento de menú Open... (Abrir...) abre un cuadro de diálogo que solicita información acerca de un archivo previamente guardado. Este cuadro de diálogo es el cuadro de diálogo estándar Open File (Abrir Archivo), que muestra la unidad por omisión, vía de acceso y los parámetros para búsqueda del archivo, permitiendo seleccionar nuestros propios parámetros.

El cuadro de diálogo tiene una utilidad de autoguardado que automáticamente recuerda las preferencias del usuario y las utiliza, por omisión, cada vez que se utilice la orden Open... (Abrir...). El intento de abrir un archivo que ya está abierto provoca automáticamente una señal de alarma sonora y un mensaje de advertencia. ¡Esta útil notificación evita que se abran, de forma accidental, dos o más copias del mismo archivo, editando sólo uno de ellos y, a continuación, guardar la versión no actualizada!

El segundo botón a la izquierda de la barra de herramientas, que presenta la imagen de una carpeta abierta con una flecha, se puede utilizar para llamar directamente a la opción Open... (Abrir...).

Close (Cerrar)

El elemento de menú Close (Cerrar) se utiliza para cerrar un archivo abierto. Si se tienen múltiples archivos abiertos, esta orden cerrará la ventana activa o seleccionada. Se puede identificar la ventana activa, observando el borde de la ventana. Las ventanas activas o seleccionadas tienen el enfoque del ratón y teclado (esto significa que la ventana recibe actualmente entrada de ratón y teclado) y se muestran con los parámetros de configuración del color seleccionados para el sistema. Estos parámetros normalmente incluyen las barras de título con color y los bordes de la ventana oscuros. Normalmente, en las ventanas inactivas aparecen en gris las barras de titulo y los bordes de la ventana.

Si de una manera accidental se intenta cerrar un archivo que no ha sido guardado, no debe existir ninguna preocupación. El entorno integrado automáticamente protege al usuario de esta situación altamente peligrosa, avisándole que el archivo no se ha guardado anteriormente y preguntándole si desea guardar el archivo en ese momento.

Save (Guardar)

El elemento de menú Save (Guardar) guarda los contenidos de la ventana actualmente activa o seleccionada asociada al archivo especificado. Se puede distinguir si el contenido de una ventana ha sido previamente guardado o no, simplemente comprobando la barra de título de la ventana. Si el titulo que tiene es el que por omisión le asigna el programa, como puede ser xxx1, indicará que los contenidos de la ventana actual no tienen asignado un nombre de archivo válido y, por tanto, no se han guardado. Cuando se guarda un archivo que no se ha guardado previamente, se activará automáticamente el cuadro de diálogo Save As... (Guardar como...).

También se puede utilizar el botón Save (Guardar) de la barra de herramientas. Este botón es el tercero de la izquierda y presenta la imagen de un disco flexible. Si un archivo se abre en modo de sólo lectura (véase la descripción de la orden View (Ver) Properties (Propiedades)), se observa que la imagen del control aparecerá atenuada, indicando que la opción no está disponible actualmente.

Save As... (Guardar como...)

El elemento de menú Save As... (Guardar como...) permite guardar una copia de los contenidos de la ventana activa con un nuevo nombre. A continuación, se plantea un caso que justifica la situación en la que se podría seleccionar esta opción. Se acaba de finalizar un proyecto. Se tiene un programa de trabajo. No obstante, se quieren llevar a cabo algunas modificaciones. Por motivos de seguridad, no se desea modificar la versión actual. La selección de la opción Save As... (Guardar como...) permite copiar los contenidos del archivo con un nuevo nombre y, por tanto, poder modificar el archivo duplicado. En caso de que ocurriera un desastre, siempre se podría volver al archivo original.

Save All (Guardar todo)

Si nunca se ha escrito una aplicación C/C++, Windows 98/95 o Windows NT, puede resultar sorprendente el número real de archivos que se utilizan para la creación de un archivo ejecutable de un proyecto. El problema con la opción Save es que únicamente guarda los contenidos de la ventana activa. El elemento de menú Save All (Guardar Todo) guarda los contenidos de cada ventana. Si una ventana contiene texto que no se ha guardado previamente, la orden Save ALL (Guardar Todo) llamará automáticamente al cuadro de diálogo Save As... (Guardar Como...), solicitando un nombre de archivo válido para cada ventana.

Page Setup... (Configurar página...)

La utilización más habitual del elemento de menú Page Setup... (Configurar página.....) es para documentar y dar formato a las copias impresas. El cuadro de diálogo Page Setup (Configurar página) permite seleccionar un encabezado y un pie para cada página a imprimir y se puede utilizar para especificar los márgenes de impresión superior, inferior, izquierdo y derecho.

La Tabla 2.1 muestra los códigos de formato disponibles para seleccionar el tipo de encabezado y pie.

Print.. (Imprimir...)

La obtención de una copia impresa de los contenidos de la ventana activa es tan sencillo como seleccionar el elemento de menú Print... (Imprimir...). El cuadro de diálogo Print (Imprimir) proporciona al usuario diferentes opciones. Primero, se puede seleccionar entre imprimir los contenidos completos de la ventana o imprimir sólo el texto seleccionado pulsando sobre el botón de opción apropiado. También se puede seleccionar la impresora a utilizar y configurar la impresora seleccionada eligiendo la opción Setup (Configurar).

Si se desea imprimir una parte del contenido de una ventana, primero se debe seleccionar el texto deseado. Seleccionar el texto es tan sencillo como colocar el puntero del ratón en el primer carácter del texto que se desea imprimir y, manteniendo pulsado el botón izquierdo del ratón, arrastrar el ratón hacia la derecha y/o hacia abajo a través del texto. Esto provoca que el texto seleccionado se muestre en modo inverso. Cuando se ha seleccionado el texto, el cuadro de diálogo Print mostrará el botón de opción Print Range Selection (Imprimir selección) en modo normal (no atenuado), indicando que la opción está disponible.

Recent File List (Lista de archivos recientes)

Justo debajo del elemento Print... del menú aparece una lista de los archivos más recientemente editados. La característica más importante de estas listas (a menudo denominadas listas de histórico) es que son sensibles al contexto. Las listas de histórico guardan la fecha para recordar los últimos elementos que se han seleccionado para una opción particular En el caso de este menú, los elementos recientes se corresponden con archivos abiertos previamente. La primera vez que se utiliza el EID de Visual C++, esta parte del menú File aparece vacía, puesto que no existe histórico de archivos abiertos.

Códigos de formato Utilización asociada

&c Centrar texto.

&d Añadir la fecha actual del sistema.

&f Utilizar el nombre del archivo.

&l Justificar el texto a izquierda.

&p Añadir números de página.

&r Justificar el texto a derecha.

&t Añadir la hora actual del sistema.

Recent Workspace List (Lista de áreas de trabajo recientes)

La lista de los proyectos recientes aparece en el menúinmediatamente debajo de la lista de archivos recientes. Esta lista de históricoes similar a la lista de archivos recientes, excepto que la lista de proyectosrecientes contiene solamente archivos de proyecto. Para abrir cualquier archivo,en ambas listas, se pulsa dos veces con el botón izquierdo del ratón sobre elelemento seleccionado.

Exit (Salir)

El elemento de menú Exit (Salir) permite abandonar el EID deVisual C++. No es motivo de preocupación el hecho de olvidar guardar loscontenidos de una ventana antes de seleccionar Exit (Salir). EID automáticamentemuestra un mensaje de advertencia para cada ventana que contiene texto noguardado, permitiendo guardar esta información antes de salír.

El menú Edit (Edicíón)

Los elementos del menú Edit (Edición) permiten editar obuscar, de forma rápida, los contenidos de una ventana activa de la misma formaque se realizaría con cualquier programa de tratamiento de textos estándar. LaFigura 2.3 muestra el menú Edit (Edición) del EID (Entorno integrado dedesarrollo) de Visual C++ y el menú emergente Advanced (Avanzado).

Undo (Deshacer)

El elemento de menú Undo (Deshacer) permite deshacer lamodificación de edición más reciente que se haya realizado. También, sepuede utilizar la opción Undo (Deshacer) desde la barra de herramientas. Laopción Undo (Deshacer) aparece en la barra de herramientas en forma de flechaapuntando hacia la izquierda. Se trata del séptimo icono empezando por laizquierda en nuestro sistema.

Redo (Rehacer)

El elemento de menú Redo (Rehacer) permite deshacer la acciónde la última operación Undo. Esta opción se utiliza para volver a consideraruna modificación de edición válida que fue considerada como una modificaciónincorrecta. La opción Redo (Rehacer) también se puede utilizar desde la barrade herramientas. La opción Redo (Rehacer) aparece en la barra de herramientasen forma de flecha apuntando a la derecha. Se trata del octavo icono empezandopor la izquierda en nuestro sistema.

Cut (Cortar)

El elemento de menú Cut (Cortar) copia en el Portapapeles eltexto seleccionado en la ventana activa y, a continuación, lo elimina de laventana activa. Seleccionar el texto es tan sencillo como situar cl puntero delratón sobre el primer carácter del texto que se desea cortar y, manteniendopulsado el botón izquierdo del ratón arrastrarlo hacia la derecha y/o haciaabajo a través del texto. Esto provoca que el texto seleccionado se muestre enmodo inverso.

La orden Cut (Cortar) se utiliza, a menudo, conjuntamente conla orden Paste (Pegar) para mover texto de una posición a otra. Cuando el textocortado se coloca en el Portapapeles, se observa que todos los contenidosexistentes en el mismo se eliminan.

La opción Cut (Cortar) también se puede utilizar desde labarra de herramientas. En la barra de herramientas, la opción Cut (Cortar) secorresponde con el icono de las tijeras. Se trata del cuarto icono empezando porla izquierda en el sistema.

Copy (Copiar)

Al igual que Cut, el elemento de menú Copy (Copiar) colocael texto seleccionado en el Portapapeles. Sin embargo, a diferencia de Cut, Copy(Copiar) mantiene el texto original seleccionado en su lugar Una buena utilizaciónde esta opción podría ser la reproducción de secuencias de códigocomplicadas o aclarar comentarios necesarios en varios archivos fuente.

La orden Copy (Copiar) se utiliza, a menudo, conjuntamentecon la orden Paste (Pegar) para copiar texto de una posición a otra. Cuando eltexto copiado se coloca en el Portapapeles, se observa que todos los contenidosexistentes en el mismo se eliminan.

La opción Copy (Copiar) también se puede utilizar desde labarra de herramientas. En la barra de herramientas, esta opción se correspondecon el icono que contiene una página duplicada. Se trata del quinto iconoempezando por la izquierda en el sistema.

Paste (Pegar)

El elemento de menú Paste (Pegar) se utiliza para insertarlos contenidos del Portapapeles en la posición actual del cursor ElPortapapeles sólo puede pegar información que previamente se haya colocado enél mediante una orden Cut o Copy.

La opción Paste (Pegar) también se puede utilizar desde labarra de herramientas. En la barra de herramientas, esta opción se correspondecon el icono que contiene una página y el Portapapeles. Se trata del sextoicono empezando por la izquierda en el sistema.

Delete (Borrar)

El elemento de menú Delete (Borrar) borra el textoseleccionado sin que se copie la información al Portapapeles. Seleccionar eltexto es tan sencillo como situar el puntero del ratón sobre el primer carácterdel texto que se desea eliminar y, manteniendo pulsado el botón izquierdo delratón arrastrarlo hacia la derecha y/o hacia abajo a través del texto. Estoprovoca que el texto seleccionado se muestre en modo inverso.

Aunque el texto borrado no se copia en el Portapapeles, todavíase puede deshacer una orden Delete seleccionando la orden Edit Undo.

Select All (Seleccionar todo)

El elemento de menú Select All (Seleccionar todo) se utilizapara seleccionar todos los contenidos de la ventana activa de forma que se puedacortar, copiar o borrar.

Find... (Buscar..)

El elemento de menú Find... (Buscar..) funciona de forma muyparecida a la opción de búsqueda de los programas de tratamiento de texto estándar.No obstante, dado que el Lenguaje C/C++ distingue entre mayúsculas y minúsculas,la orden Find... (Buscar...) se puede adaptar para realizar búsquedas sensiblesal contexto, no sensibles al contexto y de palabra completa. El cuadro de diálogoFind (Buscar) también permite establecer la dirección de búsqueda (haciaarriba o hacia abajo) a partir de la posición actual del cursor.

Una opción muy útil y sofisticada de Find... (Buscar...),que normalmente no aparece en las posibilidades de búsqueda de los programas detratamiento de texto, es la opción Regular Expression (Expresión regular). LaTabla 2.2 muestra y describe los símbolos de patrones de búsqueda asociadoscon Regular Expression que se pueden utilizar en la ventana Find What: (Buscarqué:).

Find in Files... (Buscar en archivos...)

Find in Files... (Buscar en archivos...) es una de lasherramientas más valiosas que se van a utilizar una vez que se conozcan suscapacidades. Aun teniendo la misma potencia que Find..., Find in Files...(Buscar en archivos) incorpora una ventaja especial, permite realizar la búsquedaen múltiples archivos. El usuario se puede plantear la siguiente pregunta, ¿porqué podría resultar necesaria esta utilidad? La respuesta sería: si se estáaprendiendo una nueva característica del lenguaje C/ C++, se puede utilizaresta opción para examinar todos los programas que contienen dicha característica.Si se está modificando un programa, se puede utilizar Find in Files... (Buscaren archivos...) para asegurar que se ha accedido a todas las ocurrencias de lasintaxis antigua. Sí se está trabajando con un proyecto grande, se puedeutilizar Find in Files... (Buscar en archivos...) para localizar todo el códigoescrito por un programador o grupo particular. Además es necesario recordarque, Find in Files... (Buscar en archivos...) no sólo tiene la capacidad debuscar en un subdirectorio o en una unidad de disco. Find in Files... (Buscar enarchivos...) puede examinar una red de computadoras completa, una intranet oInternet, localizar cualquier nombre, cadena, palabra reservada y mucho más.

 


 

Patrón Significado

* Sustituye cualquier número de caracteres.

Ejemplo: Datos*1

Busca: Datos, DatosEn1, DatosSal1

. Sustituye un único carácter

Ejemplo: Datos.

Busca: Datos1, Datos2, pero no DatosEn1

^ Comienza una búsqueda de una línea que comienza con la cadena.

Ejemplo: ^hacer

Busca: cada línea que comienza con "hacer"

+ Sustituye cualquier número de caracteres que preceden a lacadena.

Ejemplo: +valor

Busca: i_valor, f_valor, lng_valor

$ Comienza la búsqueda de cada línea que finaliza conla cadena.

Ejemplo: alguna_var_n);$

Busca: cada línea que finaliza con "alguna_var_n);"

[ ] Comienza una búsqueda de un conjunto de caracteresdeterminado.

Ejemplo: Datos[A. .Z]

Busca: DatosA, pero no Datos1

Ejemplo: Datos[ 1248]

Busca: Datos2, pero no Datos3

\ Comienza una búsqueda para aquellas cadenas donde el carácter que precede al patrón debe coincidir exactamente.

Ejemplo: Datos[A..Zi\O. .9]

Busca: DatosAil, pero no DatosDo3

\ {\} Comienza una búsqueda de cualquier secuencia de los caracteres que aparecen entre llaves.

Ejemplo: \{no\}*_respuesta

Busca: respuesta, no_respuesta, nono_respuesta nonono_respuesta

 

 


Replace... (Reemplazar...)

El elemento de menú Replace... (Reemplazar...) activa elcuadro de diálogo Replace (Reemplazar), que permite reemplazar texto.Simplemente se introduce la cadena a localizar, a continuación se escribe lacadena por la que se reemplaza y, finalmente, se seleccionan los diferentescriterios de coincidencia. La opciones de coincidencia incluyen sólo palabrascompletas, distinción entre mayúsculas y minúsculas, no distinción entre mayúsculasy minúsculas y Regular Expressions (Expresiones regulares) (véase la explicaciónanterior).

Se debe tener cuidado cuando se selecciona la opción ReplaceALL (Reemplazar todo), puesto que puede generar resultados peligrosos. Existendos aspectos a tener en cuenta cuando se realiza una operación dereemplazamiento: primero, guardar el archivo antes de ejecutar la orden;segundo, si algo provoca una mala realización del proceso de reemplazamíento,recuérdese que siempre se puede utilizar la opción Undo (Deshacer).

Go to... (ir a...)

Se puede desplazar el cursor, de forma rápida, a una posiciónespecífica dentro de la ventana de edición activa con el elemento de menú GoTo... (Ir a...). La selección de esta opción activa el cuadro de diálogo Line(Línea) que permite introducir el número de línea asociado a la línea de códigoa la que se desea saltan El hecho de introducir un número de línea superior alnúmero actual de líneas de código fuente disponibles, implica que la ordencoloca el cursor al final del archivo de texto que aparece en la ventana.

Bookmarks... (Marcadores...)

La opción Bookmarks... (Marcadores...) permite especificarmarcadores para marcar las líneas a las que se accede con mayor frecuencia enel archivo fuente. Una vez que se define un marcador, se pueden utilizar las órdenesdel menú o del teclado para desplazarse a dicho marcador. Un marcador se puedeeliminar cuando ya no sea necesario. Se pueden utilizar marcadores con nombre ymarcadores sin nombre. Los marcadores con nombre se guardan entre diferentessesiones de edición. Cuando se crea un marcador con nombre, el usuario se puededesplazar a esta posición siempre que el archivo este abierto. Los marcadorescon nombre se guardan junto con el número de línea y el número de columna dela posición en la que se encuentra el cursor cuando se crea dicho marcador Estaposición se ajusta siempre que se edita el archivo. El marcador permanece en laposición actual, incluso si se borran los caracteres que rodean dicho marcador

ActiveX Control in HTML... (Control ActiveX en HTML) y HTMLLayout... (Esquema HTML...)

Estas dos opciones permiten editar un control ActiveXintegrado en HTML o el propio esquema HTML.

Advanced (Avanzado)

 

Las opciones Advanced (Avanzado) permiten refinar elcódigo fuente. Las opciones más útiles incluyen la eliminación detabuladores en la selección, visualización de espacios en blanco y búsquedasincrementales.

Breakpoints... (Puntos de ruptura...)

La opción Breakpoints... (Puntos de ruptura...) permiteespecificar puntos de ruptura en posiciones específicas, en elementos de datosseleccionados o en mensajes.

 

Líst Members (Miembros de la lista)

Esta utilidad muestra una lista de variables o funcionesmiembro válidas para la clase o estructura seleccionada.

Type Info (información de tipo)

La opción Type Info (Información de tipo) muestra una$$ToolTip que contiene la declaración completa para cualquier identificador

Parameter Info (información de los parámetros)

Esta utilidad muestra la declaración completa, incluyendouna lista de parámetros, de la función que aparece a la izquierda del cursorEl parámetro en negrita indica el siguiente parámetro que se requiere cuandose escribe la función.

Complete Word (Palabra completa)

La opción Complete Word (Palabra completa) completa el restodel nombre de una variable o función. Esta opción puede ahorrar el hecho detener que repetir la escritura de nombres largos.

El menú View (Ver)

El menú View (Ver) contiene las órdenes que permitenmodificar la vista del Query Designer (Diseñador de consultas) (véase laFigura 2.4).

 

Scrípt Wízard... (Asistente de Scripts...)

Una forma sencilla de comenzar con la creación de scripts esutilizando una herramienta autorizada HTML como puede ser Microsoft ActiveXControl Pad. La herramienta Microsoft ActiveX Control Pad está disponiblegratuitamente para descargarla desde la sección de herramientas autorizadas enMicrosoft Site Builder Workshop, a la que se puede acceder a través dewww.microsoft.com. Se puede utilizar la opción Script Wizard... (Asistente deScripts. ..) para comenzar el diseño una VBScript (Script de Visual Basic) oJavaScript (Script de Java). Una vez que se activa el Script Wizard (Asistentede Scripts), primero se selecciona el Default Script Language (Lenguaje deScripts por omisión) y, a continuación, se selecciona un evento (SelectEvent), se carga (Load) y posteriormente se inserta el evento (Insert Event).

ClassWizard... (Asistente de clases...)

El ClassWizard (Asistente de clases) de Microsoft C++ hace másfácil la realización de tareas repetitivas como pueden ser la creación denuevas clases, la definición de descriptores de mensajes, sustitución defunciones virtuales de la MFC y la recolección de datos de controles en uncuadro de diálogo, una vista formulario o una vista de registros. Un aspectomuy importante es que ClassWizard (Asistente de clases) sólo funciona conaplicaciones que utilicen clases de la MFC a diferencia de ClassView yWizardBar, que funcionan con MFC, ATL o con las propias clases del usuario. Además,ClassVíew no reconoce las clases a menos que aparezcan registradas en elarchivo de la base de datos de ClassView. Estos archivos tienen la extensiónCLW. Con ClassWizard (Asistente de clases), se puede:

· Incorporar métodos y propiedades automáticas (Automation) cuando se crean nuevas clases.

· Crear nuevas clases a partir de muchas de las clases base del marco de trabajo que controlan los mensajes y conjuntos de registros de Windows.

· Crear nuevas funciones miembro de control de mensajes.

· Declarar variables miembro que automáticamente inicializan, reúnen y validan datos introducidos en cuadros de diálogo o vistas de formularios.

· Eliminar funciones miembro de control de mensajes.

· Asignar mensajes a funciones asociadas con ventanas, cuadros de diálogo, controles, elementos de menú y abreviaturas.

· Determinar los mensajes que ya tienen definidos controladores de mensaje y desplazarse al código del programa asociado al controlador.

· Trabajar con bibliotecas de clases y tipos existentes.

 

Resource Symbols... (Símbolos de recursos...) y Resources Includes... (Archivos de cabecera de recursos...)

Se puede descubrir rápidamente que cuando un programa se hace más grande en tamaño y sofisticación, también aumenta en el número de recursos y símbolos. Esto supone que aparezca un incremento en el número de símbolos dispersos en los diferentes archivos dificultosos. La opciones Resource Symbols... (Símbolos de recursos) y Resources Includes... (Archivos de cabecera de recursos...) simplifican la gestión de los símbolos, proporcionando una herramienta central que permite realizar lo siguiente:

· Modificar el nombre y el valor de un símbolo que no está en uso.

· Definir nuevos símbolos.

· Eliminar un símbolo si no se está utilizando.

· Localizar rápidamente el editor de recursos apropiado cuando se está utilizando el símbolo.

· Examinar las definiciones de los símbolos existentes para comprobar el valor de cada símbolo, la lista de símbolos que se está utilizando y los recursos asignados a cada símbolo.

 

Full Screen (Pantalla completa)

Si se tienen las mismas costumbres que la mayoría de los programadores, cuando se comienza a profundizar en el desarrollo y/o edición del código, se desea ver, al mismo tiempo, la mayor parte de código que sea posible. La opción Full Screen (Pantalla completa) es ideal para estas situaciones, permitiendo acercar la ventana de edición (o cualquier otra ventana, por ejemplo las pantallas de ayuda) a su máxima capacidad de visualización.

Workspace (Espacio de traba/o)

Imagínese un escritorio como entorno de desarrollo. Se tienen editores, compiladores, manuales, anotaciones, libros de texto, mensajes de teléfono y e-mail esparcidos por el escritorio y monitor, todos relacionados con el proyecto a manejan Se podría interpretar la opción Workspace (Espacio de trabajo) como una secretaria electrónica que intenta organizar esta información. La opción Workspace (Espacio de trabajo) abre la vista Workspace (Espacio de trabajo) (normalmente en la parte superior izquierda de la pantalla), proporcionando acceso instantáneo a las clases actuales, archivos, recursos y a los manuales de referencia a los que se ha accedido más recientemente. La conmutación entre las diferentes presentaciones es tan sencilla como pulsar sobre las fichas que aparecen en la parte inferior de la vista del Workspace (Espacio de trabajo).

 

Output (Salida)

El elemento de menú Output (Salida) coloca en primer plano la ventana Output (Salida). La ventana Output contiene los informes del progreso que siguen los procesos relacionados con la generación, compilación y enlazado y, muestra cualquier mensaje de error o advertencia generado.

Debug Windows (Ventanas de depuración)

La selección de esta opción activa un menú que proporciona acceso a varias opciones del depurador integrado, incluyendo la Watch Window (Ventana para la visualización de los contenidos), Register Window (Ventana de registro), CalI Stack (Llamada a la pila), Memory (Memoria), Variables (Variables) y Dísassembly Code (Código no ensamblado).

Refresh (Refresco)

Se puede utilizar Refresh (Refresco) para volver a dibujar y actualizar el panel de la vista activa de forma similar a como se redibuja y se actualiza el contenido del Explorador de Windows cuando se pulsa F5.

Propertíes (Propiedades)

Si es aplicable, la orden Properties (Propiedades) muestra las estadísticas del archivo actual, como pueden ser la fecha de creación, tamaño del archivo, tipo de archivo, características de edición y mucho más dependiendo del tipo de archivo.

 

 

El menú lnsert (insertar)

El menú Insert (Insertar) accede a una lista de órdenes que permiten incluir en el espacio de trabajo nuevos archivos, recursos u objetos (véase la Figura 2.5).

New Class... (Nueva Clase...)

Cuando se selecciona esta opción, el EID (Entorno integrado de desarrollo) crea una nueva MFC, ATL o clase genérica. Aparece el cuadro de diálogo New Class (Nueva Clase) que permite definir el nombre de la clase y la clase base. Se crea un archivo de cabecera y un archivo de Implementación para la clase.

Resource... (Recurso...)

Esta opción permite insertar en el espacio de trabajo alguno de los diferentes recursos, incluyendo los recursos Accelerator (Abreviatura), Bitmap (Mapa de bits), Cursor (Cursor), Dialogo (Diálogo), Icon (Icono), Menu (Menú), String Table (Tabla de cadenas), Toolbar (Barra de herramientas) y Version (Identificador de versión).

Resource Copy... (Copia del recurso...)

Visual C++ permite copiar recursos mientras se modifica el lenguaje de recursos, los requerimientos de sus propiedades o ambos. Cuando se crea o se copia un recurso con un lenguaje o condición diferente, éste se muestra después del nombre del símbolo en la ventana Project (Proyecto). Language (Lenguaje) identifica el lenguaje utilizado para el texto del recurso. Property Condition (Condición propia) es un símbolo que identifica la condición bajo la que se utiliza esta copia del recurso.

NOTA- También se puede copiar a partir de una plantilla.

Into HTML (En HTML)

La opción Into HTML (En HTML) permite insertar recursos para mejorar una página web.

File As Text... (Archivo como texto...)

Utilizada normalmente para insertar código fuente, la opción File As Text... (Archivo como texto...) solicita primero el nombre del nuevo archivo y, a continuación, activa una ventana de edición vacía preparada para introducir texto. (Esta orden requiere tener abierta una ventana de edición e inserta el archivo en la posición actual.)

New ATL Object... (Nuevo objeto ATL...)

La opción New ATL Object... (Nuevo objeto ATL...) permite insertar una clase Active Template Library en el espacio de trabajo. Los objetos ATL son un conjunto de clases C++ basadas en plantillas que permiten crear fácilmente sencillos objetos COM (Modelo de objeto componente). Proporcionan soporte especial para características clave asociadas a COM, incluyendo implementaciones existentes de IUnknown, IClassFactory, IClassFactory2 e IDispatch; interfaces dobles; interfaces de enumeración de COM estándar; puntos de conexión; interfaces de $$arranque; y controles ActíveX. El código ATL se puede utilizar para crear objetos de entrelazado sencillo, objetos del modelo en apartamento (apartment-model objects), objetos del modelo de entrelazado libre (free-threaded model objects) y, tanto objetos del modelo de entrelazado libre como del modelo en apartamento.

El menú Project (Proyecto)

La órdenes del menú Project (Proyecto) permiten administrar todos los proyectos abiertos.

-NOTA La orden Data Connection (Conexión de datos) está incorporada al submenú Add To Project (Añadir al proyecto) cuando se activa Microsoft Visual Database Tools (Herramientas de Microsoft Visual Database). Data Connection activa el cuadro de diálogo Select Data Source (Seleccionar datos Fuente) de forma que se pueda agragar una conexión de datos a nuestro proyecto actual de base de datos. Véase la Figura 2.6.

Set Active Project (Establecer proyecto activo)

En el desarrollo de programación avanzada llega un momento donde es mejor dividir un proyecto grande en subproyectos. Un subproyecto establece una dependencia de un proyecto sobre otro con una estructura jerárquica. Los subproyectos se utilizan en proyectos de Visual C++, por ejemplo, cuando un proyecto genera un programa ejecutable que depende de una biblioteca estática. Si la biblioteca estática es un subproyecto del proyecto que genera el programa ejecutable, se verá que la biblioteca se actualizará antes de que se genere el programa ejecutable. La opción Set Active Project (Establecer proyecto activo) determina el proyecto o subproyecto que está activo actualmente.

Add to Project (Añadir al proyecto)

Se utiliza esta opción siempre que se desea agregar un archivo a un proyecto. El archivo se incorpora al proyecto especificado y a todas las configuraciones asociadas a dicho proyecto. Por ejemplo, si se tiene un proyecto denominado míPrimerProy, con las configuraciones Debug y Release, y una configuración adicional de proyecto denominada miFinalProy basada en la configuración Release, la incorporación de un archivo implica que se incorpora a todas estas configuraciones del proyecto. Si se agregan archivos desde directorios superiores al directorio de trabajo del proyecto, se verá que Microsoft Developer Studio utiliza en los nombres de los archivos los caminos de acceso absolutos para aquellos archivos que aparezcan en el archivo DSP del proyecto. Debido a la utilización de caminos de acceso absoluto, resulta difícil compartir el archivo (.DSP) del proyecto.

 

 

Source Control (Control de fuente)

Proporciona opciones para la administración de archivos de proyecto en un proyecto controlado a nivel de fuente. Este submenú sólo aparece si se tiene instalado un programa de control de fuente como puede ser Visual SourceSafe.

Dependences (Dependencias)

En el diseño de la programación avanzada donde un proyecto está constituido por diferentes subproyectos, se utiliza la orden Dependencies (Dependencias) para mostrar la relación jerárquica.

 

 

Settings... (Parámetros de configuración...)

La orden Settings... (Parámetros de configuración...) activa un cuadro de diálogo muy sofisticado que permite definir la totalidad de los parámetros de configuración del proyecto, de las clases utilizadas, las opciones del compilador de C/C++, las opciones del enlazador, visualizador tipos OLE, recursos, parámetros del visualizador y opciones del proceso de generación.

Export MakeFile... (Exportar archivo Make...)

La opción Export MakeFile... (Exportar archivo Make...) almacena toda la información requerida para generar el proyecto y se puede utilizar desde la línea de órdenes. Los archivos Make definen los mismos parámetros de configuración para la generación del proyecto que se establecen en el entorno del Developer Studio (Estudio de desarrollo).

lnsert Project into Workspace... (insertar proyecto en el espacio de trabajo)

Esta opción inserta un proyecto en el espacio de trabajo. Sin embargo, esto puede resultar algo confuso si no se establece la comparación entre qué es un proyecto y en qué se diferencia de un espacio de trabajo. Un espacio de trabajo del proyecto es el área definida que contiene los proyectos y sus configuraciones. Un proyecto se define como una configuración y un grupo de archivos que generan un programa o archivo(s) binario(s) final(es). Por otro lado, un espacio de trabajo puede contener múltiples proyectos, incluso de diferentes tipos (por ejemplo, Microsoft Visual C++).

 

El menú Build (Generación)

La opciones del menú Build (Generación) proporcionan acceso a las utilidades del EID que se incluyen en la generación de código real, la depuración y la ejecución del programa (véase la Figura 2.7).

Compile (Compilar)

La selección de esta opción indica al EID que compile los contenidos de la ventana activa. La compilación en este sentido está indicando al entorno que compruebe la sintaxis del archivo activo, por ejemplo el código fuente en C o C++.

Build (Generar)

Los programas habituales de C/C++ están constituidos por muchos archivos. Algunos de estos archivos pueden ser suministrados por el compilador, el sistema operativo, el programador o incluso terceros como pueden ser vendedores. Puede hacerse más complicado si 105 archivos del proyecto han sido creados por equipos de programación diferentes. Teniendo en cuenta que puede haber muchos archivos y que el proceso de compilación puede tardar un tiempo excesivamente largo, el elemento de menú Build (Generar) se convierte en una herramienta extremadamente útil. Build (Generar) examina todos los archivos del proyecto y, a continuación, compila y enlaza solamente aquellos archivos que tienen una dependencia cuyas fechas y horas son más recientes que el archivo ejecutable del proyecto.

Una decisión que se debe tomar cuando se selecciona Build (Generar) es sí el archivo resultante va a incorporar información de la depuración (Modo Debug) o no (Modo Release). Estos modos se seleccionan a partir del elemento de menú Project Settíngs.... Una vez que se tiene un programa listo y ejecutándose, normalmente se debería realizar un Buíld (Generar) sin la opción Debug, puesto que la incorporación de la información genera un archivo ejecutable innecesariamente grande.

Sí el proceso Build (de generación) detecta cualquier error de sintaxis, advertencias no fatales o errores fatales, se muestran en la ventana Output (Salida). Se utilizan los elementos de menú Next Error (Error siguiente) o Previous Error (Error anterior) para desplazarse hacia adelante o hacia atrás a través de la lista de errores.

Sí se tiene visible la barra de herramientas, se puede utilizar el sexto botón empezando por la derecha para realizar el proceso Build. Este botón incluye una imagen de un cubo pintado con dos colores oscuros y con dos flechas hacia abajo apuntando al citado cubo.

Rebulid All (Volver a generar todo)

La única diferencia que existe entre Build (Generar) y Rebuild All (Volver a generar todo) es que Rebuíld All ignora las fechas de todos los archivos de un proyecto, y compila y enlaza todos ellos concienzudamente.

Imagínese la siguiente situación. La compañía, por motivos económicos, ha decidido continuar sin ningún personal de mantenimiento de los sistemas. Esta decisión, junto con el cambio de hora estacional, la hora de cierre del sistema y demás aspectos, provoca que los sistemas de la red de computadoras tengan diferentes configuraciones de reloj del sistema. ¡Por tanto, los archivos creados recientemente podrán aparecer con la fecha de días anteriores! En este caso, la utilización de la opción Build (Generar) podría no considerar estos archivos actualizados en la versión final del archivo ejecutable. No obstante, la utilización de Rebuild ALL (Volver a generar todo), evita cualquier comprobación de fecha y hora, creando un archivo ejecutable que refleja exactamente el estado actual de todos los archivos incluidos.

Cuando el proceso Rebuíld All (Volver a generar todo) detecta cualquier error de sintaxis, advertencias no fatales o errores fatales, los muestra en la ventana Output (Salida). Se utilizan los elementos de menú Next Error (Error siguiente) o Previous Error (Error anterior) para desplazarse hacia adelante o hacia atrás a través de la lista de errores.

Si se tiene la barra de herramientas visible, se puede utilizar el quinto botón empezando por la derecha para realizar el proceso Rebuild ALL. Este botón incluye una imagen de un cubo pintado con tres colores claros y con dos flechas hacia abajo apuntando hacia él.

Batch Build... (Generación por lotes...)

Esta opción es similar al elemento de menú Build, salvo que permite realizar el proceso de generación para múltiples destinos asociados al proyecto.

Clean (Limpiar)

Con la orden Clean (Limpiar) se pueden eliminar fácilmente todos los archivos de los directorios intermedios de cualquier configuración de proyecto en el espacio de trabajo asociado al proyecto. La eliminación de los archivos obliga al entorno de desarrollo a generar estos archivos si seguidamente se pulsa la orden Build.

Update All Dependencíes...(Actualizar todas las dependencias...)

La utilización de esta opción indica al EID que lea las dependencias generadas por el compilador y examine las dependencias entre los archivos con código fuente distinto de C/C++. Por tanto, la información de dependencia para los archivos de C++ no reflejará ninguna modificación realizada antes del último proceso de generación.

 

Start Debug (inícíar depuración)

A diferencia de una ejecución rápida del programa, esta opción indica al EID que comience la ejecución del programa línea a línea, o hasta cualquier punto de ruptura establecido.

Debugger Remote Connection... (Conexión remota del depurador...)

Una vez configurada la conexión en ambos puntos finales, seleccionando esta opción, se puede iniciar la depuración remota.

Execute (Ejecutar)

Una vez que se ha generado el proyecto con O errores, la orden Execute (Ejecutar) permite ejecutar el programa de forma bastante rápida.

Set Active Configuration... (Establecer la configuración activa...)

Cuando se trabaja con proyectos grandes que están constituidos por muchos subproyectos, es necesario especificar a las órdenes Build o Rebuild las necesidades para la creación del archivo ejecutable del proyecto. La orden Set Active Configuration... (Establecer la configuración activa)... realiza esta tarea.

Configurations... (Configuraciones...)

La opción Configurations... (Configuraciones) permite insertar o eliminar configuraciones asociadas al ciclo de generación activo. Por ejemplo, se podría comenzar con una única configuración de depuración y después incorporar una versión definitiva.

Pro file... (PerfiL..)

Esta opción está disponible solamente en las Ediciones Professional (Profesional) y Enterprise (Empresa). Antes de utilizar el generador de perfiles (profiler), se debe generar el proyecto actual con la opción de generación de perfiles activada. Si se desea ejecutar el perfil a nivel de funciones sólo en el proyecto actual, se necesita activar la opción de generación de perfiles para el enlazador. Si se desea generar un perfil a nivel de línea, también se necesita incluir información sobre el proceso de depuración.

Profiler se utiliza para examinar el comportamiento de los programas en tiempo de ejecución. Profiler permite determinar las secciones del código que están funcionando de forma eficiente, generando información que muestra las áreas de código que no se están ejecutando o que tardan mucho tiempo en ejecutarse.

El menú Tools (Herramientas)

El menú Tools (Herramientas) accede a las órdenes que permiten trabajar con las consultas. Las órdenes del menú Tools (Herramientas), como se describe a continuación, se aplican al Query Designer (Diseñador de consultas) (véase la Figura 2.8).

Source Browser... (Vísualízador de fuentes..)

Esta opción se utiliza para visualizar los archivos de información. Se puede indicar al compilador que genere un archivo con extensión.SBR para cada archivo objeto (.OBJ) que compila. Cuando se genera o actualiza el archivo que contiene información de visualización, todos los archivos SBR del proyecto deben estar disponibles en disco. Para crear un archivo.SBR con toda la información posible, se específica Generate Browse Info (Generar información de visualización) en el cuadro de diálogo Project Settings (o /FR). Para crear un archivo .SBR que no contenga símbolos locales, se específica Generate Browse Info y, a continuación, se activa la opción Exclude Local Variables de la ficha Browse Info (/FR en la línea de órdenes del compilador). Si el archivo .SBR contiene símbolos locales, todavía se pueden omitir del archivo .BSC utilizando la opción /El de BSCMAKE.

Close Source Browser File (Cerrar el archivo del Vísualízador de fuentes)

Esta opción cierra el archivo .SBR actualmente activo.

Error Lookup (Localizar errores)

La orden Error Lookup (Localizar errores) se utiliza para recuperar un mensaje de error del sistema o un mensaje de error de un módulo en función del valor introducido. Esta opción recupera el texto del mensaje de error automáticamente si se arrastra e inserta un valor hexadecimal o decimal a partir del depurador del Developer Studio u otra aplicación OLE habilitada. Se puede introducir un valor escribiéndolo o pegándolo directamente desde el Portapapeles y seleccionando Look Up (Localizar). Si primero se selecciona el texto, se pueden utilizar las abreviaturas de teclado para Copiar (CTRL-c), Cortar (CTRL-x) y Pegar (CTRL-v) en los cuadros Value y Error Messages.

ActiveX Control Test Container (Contenedor de prueba para controles ActiveX)

Esta orden activa la aplicación Test Container (Contenedor de prueba), que se incorpora con Visual C++. El programa es un contenedor de controles que permite probar controles ActiveX. Test Container (Contenedor de prueba) permite al desarrollador de controles probar la funcionalidad del control modificando sus propiedades, invocando sus métodos y disparando sus eventos. Además, el Test Container (Contenedor de prueba) puede mostrar registros de notificaciones de enlace de datos y ofrece facilidades para comprobar la funcionalidad de persistencia de los controles ActiveX.

 

OLE/COM Object Viewer (Visor de objetos OLE/COM)

 

OLE/COM Object Viewer muestra los objetos ActiveX y OLE instalados en la computadora y las interfaces que admiten. Además, permite editar el registro y comprobar las bibliotecas de tipos.

 

Spy++

 

La opción Spy++ activa una utilidad Wín32 que ofrece una vista gráfica de los procesos del sistema, elementos de proceso, ventanas y mensajes de ventana. La utilidad Spy++ dispone de una barra de herramientas e hiperenlaces para hacer más rápido el trabajo. Spy++ que también permite refrescar la vista activa, ofrece una herramienta de localización de ventanas (Window Finder Tool) para realizar este proceso de una forma más sencilla y proporciona un cuadro de diálogo Font (de fuentes) para personalizar las ventanas de visualización.

 

MFC Tracer (Trazador MFC)

Para ayudar a realizar la depuración de los programas de Windows, MFC proporciona la orden MFC Tracen Ésta mostrará, en un terminal o ventana de salida de la depuración, mensajes acerca de la operación interna de la biblioteca MFC, así como las advertencias y errores que se producen si algo no se ha ejecutado correctamente en la aplicación.

 

Visual Component Manager (Gestor de componentes visuales)

La pantalla principal de Visual Component Manager presenta una barra de herramientas que permite seleccionar las órdenes más habituales y tres paneles para visualizar las bases de datos, las carpetas y subcarpetas, y los elementos individuales que almacena Visual Component Manager. Posteriormente, se describirán brevemente estos elementos.

 

Register Control (Control de registros)

A los controles OLE, al igual que a otros objetos del servidor OLE, se puede acceder mediante otras aplicaciones relacionadas con OLE. Esto se consigue registrando la clase y biblioteca de tipos asociada al control. Para este propósito, se utiliza la orden Register Control (Control de registros).

 

Customize... (Personalizar...)

El elemento de menú Customize... (Personalizar..) selecciona el cuadro de diálogo Customize, que permite incorporar, eliminar y personalizar las herramientas utilizadas en el menú Tools. Las opciones adicionales permiten asignar abreviaturas de teclado a diversas órdenes.

 

Options... (Opciones...)

El elemento de menú Options... (Opciones...) activa el submenú Options, que proporciona órdenes que permiten personalizar el EID de Visual C++ o modificar la forma de desarrollar la aplicación. Si se utiliza Microsoft Visual C++ por primera vez, se puede examinar sin problemas el contenido del submenú Options. Sin embargo, hasta que no se tenga un conocimiento exacto de la complejidad que conllevan las modificaciones de las opciones por omisión para la instalación, es conveniente que no se modifiquen. Muchas de las modificaciones que se pueden realizar a este nivel tienen efectos globales, y establecer, de forma incorrecta, una opción puede interrumpir, literalmente, el desarrollo de las aplicaciones.

 

Macro... (Macro...)Record... (Grabar..)Play... (Ejecutar...)

Esta opción se utiliza para crear macros de VBScript. Estas macros son procedimientos escritos en lenguaje Visual Basic Scripting Edition. Con las macros de VBScript, se puede simplificar el trabajo a realizar en el Developer Studio (Estudio de desarrollo). Por ejemplo, en una macro se pueden combinar diferentes órdenes, agilizar la edición de rutinas o automatizar una serie de tareas complejas.

 

 

 

 

El menú Wíndow (Ventana)

A excepción de la orden Docking View (Acoplamiento de vista), el resto de las opciones del menú Window (Ventana) son similares a las que aparecen normalmente en todos los productos estándar para Windows (véase Figura 2.9).

 

New Window (Ventana nueva)

La orden New Window (Ventana nueva) proporciona una de las muchas formas de comenzar a introducir y editar un archivo nuevo.

Split (Dividir)

La opción Split (Dividir) activa un panel con cuatro cuadrantes sobre la vista Edit (Edición), permitiendo establecer el punto de división de forma horizontal o vertical.

Docking Víew (Acoplamiento de vista)

Un barra de herramientas acoplada se puede adjuntar, o acoplar, a cualquier lado de su ventana padre, o se puede separar, o desligar, de su propio marco de ventana. No todas las vistas son acoplables, pero si la ventana activa es, por ejemplo la vista Workspace, esta opción permite acoplar y desacoplar el panel.

Close (Cerrar)

Esta opción cierra la ventana activa. Si los contenidos de la ventana no se han guardado previamente, se pregunta al usuario si desea hacerlo.

Close All (Cerrar todo)

Esta opción cierra todas las ventanas abiertas. Si alguno de los archivos individuales no se ha guardado previamente, el EID pregunta al usuario si desea hacerlo antes de cerrarlo y eliminar su contenido.

Next (Siguiente)

En lugar de pulsar sobre una ventana para activarla, se puede seleccionar la orden Window Next para ir desplazándose a través de los contenidos de las ventanas abiertas.

Previous (Anterior)

Es similar a la orden Next, con la diferencia de que funciona de forma inversa.

Cascade (Cascada)

Esta opción muestra todas las ventanas abiertas de forma similar a una sección desplegable de tarjetas. Esto permite visualizar fácilmente los títulos de las ventanas.

Tile Horizontally (Distribución horizontal)

Distribuye en la pantalla las ventanas abiertas con una configuración de anchura máxima. Es la mejor forma de visualizar código fuente.

Tile Vertícally (Distribución vertical)

Distribuye en la pantalla las ventanas abiertas con una configuración de altura máxima. Es la mejor forma de mostrar análisis jerárquicos.

History List (Lista de histórico)

Se trata de una lista dinámica de las ventanas abiertas, por nombres, permitiendo seleccionar la ventana que se desea activan

El menu Help (Ayuda)

El menú Help (Ayuda) comienza con las opciones Contents (Contenidos) y Search... (Buscar...) que actúan sobre la documentación en línea estándar y, a continuación, muestra un conjunto de nuevas utilidades de ayuda, por ejemplo, la opción Documentation home page (Página de inicio de la documentación) (véase la Figura 2.10).

Contents (Contenidos) y Search... (Buscar.) 1 índex (Indice)

Estos controles de navegación a través de la documentación en línea estándar ofrecen el acceso esperado a la documentación en línea extensiva de Microsoft.

Use Extension Help (Utilización de la ayuda completa)

Esta opción permite conmutar a la opción de la ayuda completa.

Documentation Home Page (Página de inicio de la documentación)

La orden Documentation Home Page (Página de inicio de la documentación) presenta al usuario la página de más alto nivel para el tema de ayuda activo actualmente. Es similar a la selección de la primera página de un capítulo que comienza con un esquema de contenidos. Los temas de Documentation Home Page se corresponden con enlaces a archivos de ayuda sobre temas específicos.

Readme... (Léeme...)

Esta opción permite mostrar el archivo README.

Tip of the Day... (Sugerencias...) y Technical Support (Soporte técnico)

El texto de estas dos opciones describe perfectamente su funcionalidad.

Microsoft on the Web (Microsoft en el Web)

Esta opción está activa si la computadora tiene conexión al World Wide Web; permite visualizar páginas web mediante InfoViewer El acceso al web se puede realizar desde las siguientes localizaciones del Developer Studio:

     

  • Una dirección URL en una ventana fuente.

     

· Enlaces de hipertextoque aparecen dentro de una ventana lnfoViewer Topic.

· A través de la opción Microsoft on the Web (Microsoft en el Web) del menú Help (Ayuda).

· A partir del cuadroCurrent URL (URL actual) de la barra de herramientas lnfoVíewer

Se deberían seguir todos los pasos necesarios paraconfigurar la computadora de forma que se pueda realizar la conexión al WorldWide Web. Por ejemplo, se debe tener instalado el hardware de comunicacionesapropiado, conectado a un conector telefónico o a otra línea de comunicacionesy configurado de forma apropiada. El acceso al World Wide Web se debe realizar através de algún proveedor de servicios de Internet. Si se está trabajando conuna red corporativa que dispone de un cortafuegos (firewall) deseguridad, resulta imprescindible seguir los pasos necesarios para establecer lacomunicación con otras computadoras que se encuentren al otro lado delcortafuegos (firewall).

About Visual C++ (Acerca de Visual C++)

Se trata de un cuadro About (Acerca de) estándar que muestrala versión, el identificador del producto y los números de identificación delas componentes instaladas.

 

 

 

Escritura, compilación y depuración de programas sencillos

La componente Visual C++ del Microsoft Developers Studio, aligual que cualquier entorno de desarrollo nuevo que utiliza tecnología actual,puede parecer al principio un producto que intimida bastante. Aunque la ventanainicial pueda parecer sencilla, en el momento en que se empiecen a manejar losdiferentes submenús, y hurgar por ellos y sus ventanas de diálogorelacionadas, se descubre la facilidad contundente de manejo que existe en elentorno por las opciones y la aparente complejidad de este nuevo mundo.

Se puede observar que el proceso de desarrollar una aplicaciónmultitarea, orientada a objetos, GUI (Interfaz gráfica de usuario), multimedia,para Internet no se trata de un proceso sencillo (es decir se tiene que realizartodo partiendo de cero). No obstante, los entornos de lenguajes de desarrollo dehoy en día generan, de forma automática, el código para la mayoría de estosobjetivos. Este libro se ha diseñado para ofrecer al usuario un entendimientocompleto de los Lenguajes C y C++ y poder trabajar en el entorno de desarrollo númerouno de hoy en día (Microsoft Visual C++) mientras se aprende la lógica,construcciones y herramientas necesarias para desarrollar programas actuales.

Este capítulo se ha diseñado para que el usuario aprenda amanejar aquellas órdenes necesarias para crear, editar, guardar, compilar ydepurar programas sencillos. En este momento, si no se ha aprendido todavía amanejarlos, puede resultar muy interesante utilizar un rotulador para marcartexto. Dado que el entorno integrado permite iniciar cada operación de muchasformas, es conveniente destacar el texto donde aparezca el método que seprefiera. Por ejemplo, hay quien prefiere utilizar las órdenes de teclado,mientras que otros prefieren la interacción ratón/menú (apuntar y pulsar).

 

Inicio del Develo per Studio

En el Capítulo 2, se ha demostrado que comenzar a trabajarcon el FID (Entorno integrado de desarrollo) de Visual C++ resulta sencillo. Sise está utilizando un ratón, se puede pulsar dos veces sobre el icono VisualC++, que aparece en el grupo de programas Microsoft Visual C++.

Alternativamente, se puede acceder al sistema de menús deWindows mediante los siguientes pasos:

1. Se pulsa CTRL-ESC.

2. Se pulsa P para acceder al grupo Programas.

3. Se pulsa, varias veces, la tecla de FLECHA HACIA ABAJO hasta que aparezca resaltado el grupo Microsoft Visual C++

4. A continuación, se pulsa la tecla de FLECHA HACIA LA DERECHA.

5. Se pulsa la tecla de FLECHA HACIA ABAJO hasta que aparezca resaltado el programa Microsoft Visual C++.

6. Ahora, se pulsa la tecla INTRO.

(Ahora, se presenta la primera oportunidad para seleccionarlas preferencias personales del usuario.) Se utiliza el método que se prefieray, ahora se debe iniciar Microsoft Visual C++.

Creación de un primer programa

Lo primero que se debe realizar antes de escribir un programaes abrir un archivo nuevo. En el menú File (Archivo), se selecciona el elementode menú New... (Nuevo...). Esta opción abre el cuadro de diálogo New que semuestra en la Figura 3.1.

Este cuadro de diálogo se utiliza para seleccionar el tipode archivo que se desea crear. Para este ejemplo, selecciónese la opción Win32Console Application. Una vez que se la asigna al proyecto un nombre, VisualDevelopment Studio presenta al usuario las opciones relativas a la aplicación(Application) que se muestran en la Figura 3.2.

 

Para este ejemplo, se selecciona el botón de opción EmptyProject (Proyecto vacío) y se pulse el botón Finish (Finalizar). Para abriruna ventana de edición vacía, se pulsa sobre el icono Página (primer iconocomenzando por el extremo izquierdo de la barra de herramientas Edit). Con el áreade edición vacía, ya se está preparado para comenzar a escribir un programa.Introdúzcase el siguiente programa de ejemplo:

/*NOTA: Este programa contiene errores *1

1* introducidos a propósito para aprender *1

1* a manejar ci Integrated Debugger! *1

#include <stdio.h>

/* La siguiente constante simbólica se utiliza paca establecer la dimensión del array */

#define TAM 5

 

/* Prototipo de la función */

void nostrar_elem(int despl, char continue, int iarray[TAM]);

 

void main (void)

{

int despl; /* indicador del elemento del array */

int iarray[TAM] /* array de enteros */

char continue = O; /* se utiliza para controlar la respuestadel usuario */

/ * Esta primera llamada a la función muestra el contenidoactual de la variable */

mostrar_elem(despl, continue, iarray);

 

/* Mensaje de bienvenida y solicitud de respuesta por partedel usuario */

 

Printf (\n\nBienvenido a esta demostración ¡");

printf (\n¿Desea continue (S/N)?")

scanf ("%c" , continue)

/* Entrada por parte del usuario de un nuevo array de datosenteros */

if (continue == ‘s’)

for <despl == O; despl < TAM; despl++){

printf("\n Por favor introduzca un entero: ");

scanf ("%d", &iarray[despl]);

}

*/ La segunda llamada a la función muestra los datosintroducidos por el usuario */

mostrar_elem(despl, continue, iarray);

}

/*La función muestra por pantalla les contenidos de todas las variables */

void mostrar_elem(int despl, char continue, int iarray[TAM])

{

printf("\n\n%d", despl);

printf ("\n\n%d", continue);

for <despl= 0; despl < TAM, despl++)

printf ( '\n%d", iarray[despl])

}

 

El programa se debe introducir tal y como aparece en eltexto. Sí se está familiarizado con el lenguaje C, se observará que existenerrores en el programa. No deben corregirse. Los errores se colocaron de formaintencionada para que el usuario aprenda a manejar varias utilidades del entornointegrado.

Edición del código fuente

Una de las razones principales que garantizan el éxito deMicrosoft Windows es la presencia de la Interfaz gráfica de usuario (GUI).Windows 9X/95 introduce una GUI modificada, que resulta intuitiva para losusuarios expertos en Windows. De esta manera, una GUI de usuario consistentesignifica que cuando aparece una utilidad particular en dos aplicacionesdiferentes, por ejemplo en un programa de tratamiento de texto de Windows y enel editor del EID de Visual C++, esta utilidad normalmente tendrá las mismas órdenesde menú y teclado y, además, en las mismas posiciones, para ambasaplicaciones.

Esto supone que aunque nunca se haya utilizado el editor delEID de Visual C++, el usuario debe saber que el proceso de corregir errores odesplazarse al comienzo o final de una línea, o al final de la ventana de ediciónresulta tan sencillo o familiar como hacerlo en el programa de tratamiento detextos que se suele utilizar en Windows.

Aquí radican algunos de los aspectos más útiles a la horade trabajar con el editor del EID de Visual C++. Para desplazarse rápidamente através de una línea, manteniendo pulsada la tecla CTRL, se pulsa la tecla deFLECHA HACIA LA IQUIERDA o HACIA LA DERECHA. Esto supone que el cursor de ediciónse desplaza una a la derecha o a la izquierda palabra a palabra (una palabra sedefine como cualquier texto delimitado por espacios en blanco o caracteres depuntuación).

Para borrar una palabra completa en lugar de hacerlo caráctera carácter, se coloca el cursor en el espacio que aparece antes o después dela palabra que se desea eliminar y se pulsa CTRL-SUPR (para borrar la palabrasituada a la derecha) o CTRL-RETROCESO (para borrar la palabra situada a laizquierda).

Para permitir la edición de la máxima cantidad de contenidodel espacio de trabajo, se pueden desactivar las barras de desplazamientovertical y horizontal (véase Tools Options). Si se selecciona esta opción, nose puede utilizar el ratón para desplazarse horizontal y verticalmente por laventana. Por esta razón, es necesario conocer las dos combinaciones de teclado:CTRL-AvPAG}, que desplaza el cursor al comienzo del programa y CTRL-FIN, quedesplaza el cursor al final del programa. ¿Está considerando todo con elrotulador?

Quizás surja la duda acerca del por qué no se ha hechomención a los movimientos horizontales de teclado equivalentes. La razónconsiste en que el código escrito por la mayoría de los profesionales seajusta a un monitor estándar con 80 columnas de anchura. Esto facilita lalectura y depuración del código (puesto que cada línea de código estácompletamente visible, no pueden aparecen errores en la columna 95).

Almacenamiento de archivos

Normalmente existe un conflicto importante entre el usuario yel compilador El usuario puede pensar que escribe un código impecable, mientrasque el compilador opina todo lo contrario. Si esta apreciación no es losuficientemente dura, surge la opinión del enlazador sobre nuestro ingenio a lahora de realizar algoritmos. No obstante, el revés final a nuestro ego llegapor parte del propio microprocesador que, después de filtrar el archivoejecutable a través del compilador y enlazador, se ve saturado con nuestrasinstrucciones digitales.

Aunque esta discrepancia entre el usuario y el compilador oel enlazador no es catastrófica, las diferencias con el microprocesador siloson. Por tanto, la conclusión a esta situación consiste en: guardar el archivoantes de compilar, antes de enlazar y, definitivamente, antes de intentarejecutar el programa. A los programadores les han sucedido muchas historiastristes cuando ejecutan un archivo sin guardarlo previamente, se produce una caídade la aplicación o del propio sistema y, a continuación, tienen que reescribirel programa completo.

 

Si todavía no se ha realizado, guárdese el programa ejemplocon el que se está trabajando. Esto se puede realizar pulsando sobre el tercerbotón de la barra de herramientas comenzando por la izquierda (la imagen deeste botón tiene el aspecto de un disquete flexible de 3.5"), utilizandola orden File Save o pulsando la combinación de teclas CTRL-5.

La primera vez que se guarda un archivo, el EID mostrará elcuadro de diálogo Save. Guárdese este archivo con el nombre ERROR.C.

La Figura 3.3 muestra la ventana de edición que aparecejusto antes de guardar el archivo. Después de guardar el archivo, el títuloque aparece en la barra de títulos mostrará el nombre del archivo guardado.

Creación del archivo ejecutable

La mayoría de los programas de Windows 3.x, Windows 98/95y Windows NT contienen muchos archivos. No obstante, para comenzar, losprogramas más sencillos tienen un único archivo, el archivo mamo de C/C++.Conforme se vaya adquiriendo una mayor experiencia en la programación, secomprobará que esta aproximación introductoria es ineficiente.

A medida que se entienda mejor el lenguaje C/C++ y eldesarrollo de aplicaciones en Windows, se comenzará a dividir las soluciones enmúltiples archivos C/ C++, lógicamente relacionados. A estos se les añadiránnuestros propios archivos de cabecera (los archivos de cabecera tienen comoextensión .h). Cuando el lector alcance el final de este libro, será capaz decrear aplicaciones con archivos de código fuente, archivos de cabecera,archivos de recursos y demás.

Por tanto, aunque el programa de ejemplo contiene un únicoarchivo, las siguientes secciones presentan los pasos necesarios para construiruna aplicación en C/C++ constituida por muchos archivos para trabajar bajoentorno Windows.

Utilización de los Workspaces

Antes de poder compilar un programa típico en C/C++, el EIDde Visual C++ necesita tener información de los nombres de todos los archivosde C/C++ y de los recursos necesarios para crear el archivo ejecutable.Anteriormente, este proceso se realizaba normalmente en un archivo make (losarchivos make tienen la extensión de archivo .MAK).

Los archivos make son archivos de texto que siguen unasintaxis especial, detallando las dependencias entre los archivos. Dicho de otraforma, la sintaxis de los archivos make define los archivos que deben estarpresentes y compilados antes de que el archivo destino se pueda utilizar en otraetapa del proceso de compilación o enlazado. Por tanto, debido a lo sofisticadode este proceso, ya no se considera como "compilación y enlazado". Lanueva palabra que se utiliza para describir este paso es "generación"(building).

Tradicionalmente, los archivos make se tenían que ejecutardesde la línea de órdenes mediante un programa de utilidad independientedenominado NMAKE.

Microsoft ha perfeccionado este proceso completo en elcompilador de Visual C++, incluyendo una nueva utilidad denominada utilidadProyecto.

Mientras que un programador tenía que crear el archivo detexto .MAK independiente y ejecutar la utilidad NMAKE, ahora la utilidadProyecto permite conseguir el mismo resultado sin tener que abandonar el EID deVisual C++. La utilidad Proyecto crea, edita y utiliza los archivos make conextensión .MAK. Esto es incluso mejor que crear el archivo del proyecto que esun proceso sencillo.

Creación de un nuevo proyecto

Para crear un nuevo proyecto, se selecciona el elemento demenú File | New... Esta orden activa el cuadro de diálogo New File. En estemomento, se selecciona la ficha Projects (véase la Figura 3.4). Después deseleccionar este elemento, aparecerá el cuadro de diálogo New Projects, que seconsidera el primer paso en la creación de un archivo de proyecto.

 

La primera información que requiere la utilidad Proyecto esel nombre del archivo de proyecto. El nombre del archivo de proyecto esimportante, puesto que se trata de la etiqueta que se utilizará paraidentificar el archivo ejecutable final.

La mayoría de los programadores que trabajan por primera vezcon C/C++ se sorprenden al comprobar que el nombre del archivo ejecutable delprograma no coincide con el nombre del archivo fuente que contiene la funciónmain( ) o WinMain( ). Recuérdese que todos 105 archivos de proyecto deben tenerextensión .MAK y, sin embargo, sus nombres reales pueden diferir de los nombresasociados a los archivos del código fuente. En el programa de ejemplo, utilíceseel nombre de archivo de proyecto ERROR.

La segunda información que se requiere es el tipo deproyecto. Las opciones incluyen bibliotecas de enlace dinámico (DLL) y variosformatos ejecutables. En este ejemplo, se debería seleccionar la opción Win32Console Application (Aplicación de consola para Win32).

Si se introduce una entrada en la categoría Location:, estaopción indica al EID de Visual C++ que cree automáticamente un subdirectorionuevo para el nuevo proyecto.

La cuarta opción hace referencia a la plataforma destino delproyecto. Para la versión de 32 bits del compilador de Visual C++, está activala opción Win32. La Figura 3.4, mostrada anteriormente, presenta la informaciónnecesaria para un archivo de proyecto de ejemplo completo. Para aceptar estainformación, se debe pulsar sobre el botón OK.

Incorporación de archivos a un proyecto

Una vez que se define el archivo del nuevo proyecto, lautilidad Proyecto permite añadir archivos fácilmente. La Figura 3.5 muestra elelemento de menú Add Files to Project... seleccionado. El acceso a este menúemergente es tan sencillo como pulsar con el botón derecho del ratón dentro deFileView.

La selección de esta opción abre una ventana estándar FileManager (Administración de archivos) que permite al usuario localizar e incluirfácilmente todos los archivos necesarios para crear el programa ejecutable. Unanota importante acerca de los tipos de archivos incluidos, es que los archivosde cabecera (aquéllos con extensión .H) no aparecen en la lista dearchivos del proyecto. Los archivos de cabecera se incorporan directamente alproceso de generación mediante instrucciones #include del preprocesador.

El cuadro de diálogo Insert Files into Project (insertararchivos en el proyecto) (véase la Figura 3.6) es muy parecido al cuadro de diálogoestándar File (Archivo) de Windows. Permite seleccionar una unidad y el caminode acceso por omisión y, automáticamente, lista todos los nombres de archivodel camino de acceso seleccionado. Para el programa de ejemplo, simplemente sepulsa dos veces sobre el nombre de archivo ERROR en la lista File name (Nombrede archivo:). Esto agregará automáticamente el nombre del archivo en elarchivo del proyecto.

Si este proyecto fuera un archivo de proyecto formado pormuchos archivos, como podría ser un proyecto para el desarrollo de aplicacionesWindows, en este momento se debería continuar con la selección de los archivosnecesarios el proyecto. Para el programa de ejemplo, sin embargo, sólo serealizará un archivo. En este punto, se está preparado para finalizarcorrectamente la definición del archivo de proyecto pulsando el botón OK.

Selección de Build (Generar) o Rebuild Ah (Volver a generartodo)

Una vez que se ha creado el archivo del proyecto, se estápreparado para indicar al EID que genere el archivo ejecutable. Recuérdese, queeste proceso en Visual C++ se conoce como generación (build).

La Figura 3.7 muestra el menú Build (Generación) con laorden Rebuíld Ah (Volver a generar todo) seleccionada.

En el Capitulo 2, se vio que la única diferencia existenteentre las órdenes Build y Rebuild All, es que Rebuild All no comprueba lasfechas de los archivos utilizados en el proyecto. Esta orden siempre recompila yenlaza todos los archivos del proyecto.

Debido a que un mantenimiento incorrecto del sistema puedegenerar errores en las configuraciones internas del reloj, lo más seguro esseleccionar siempre la opción Rebuild All para las aplicaciones pequeñas.Ahora, se activa el proceso de generación pulsando sobre la orden Rebuild All opulsando INTRO cuando aparece esta orden resaltada.

Depuración de programas

Si el programa contiene errores sintácticos, la ejecuciónde la orden Build o Rebuild All abre automáticamente la ventana de mensajes desalida del compilador, como se puede observar en la parte inferior de lapantalla que aparece en la Figura 3.8.

Cada mensaje comienza con el nombre del archivo fuente, quepara este ejemplo es C:\Archívosdeprograma\DevStudio\MíProyecto\Error\Erron.c.Este nombre de archivo es importante, puesto que las aplicaciones típicas deWindows contienen muchos archivos fuente.

-NOTA Probablemente tendrá que establecer la resolución dela pantalla del monitor a una configuración que permita visualizar los mensajesde error o advertencia descritos en el texto siguiente.

Inmediatamente después, a la derecha del nombre del archivofuente, aparece el número de línea, entre paréntesis, en donde se hadetectado la advertencia o error. En nuestro ejemplo, el primer mensaje de errorse ha generado en la línea trece (13). A la derecha del número de líneaaparecen dos puntos, seguidos inmediatamente por la palabra 'error" o lapalabra warning, que precede al número de error asociado.

Si sólo aparecen mensajes de advertencia se puede ejecutarel programa, pero no se podrá si aparece algún mensaje de error. La últimainformación que aparece en cada línea de mensaje es una breve descripción delerror sintáctico detectado.

Diferencias entre los mensajes de error y los de advertencia

Los mensajes de advertencia pueden indicar la utilización deuna regla automática estándar de C/C++. Por ejemplo, se podría hacerreferencia a una regla automática cuando se tiene un valor float truncadoautomáticamente para asignarlo a una variable entera. Esto no significa que elcódigo esté escrito incorrectamente, sino que la instrucción está utilizandoalguna característica de C/C++ que puede generar efectos laterales.

Por ejemplo, todas las funciones con prototipo en MATH.Htienen argumentos formales de tipo double y devuelven el tipo double. Siel programa pasa a alguna de estas funciones un argumento de tipo float, elcompilador generará una advertencia. Esta advertencia informará que va a tenerlugar una conversión del tipo float al tipo double, cuando elargumento se introduzca en la llamada a la pila.

Se pueden eliminar la mayoría de los mensajes de advertenciaanulando automáticamente las opciones por omisión del lenguaje. Esto se puederealizar colocando en primer plano aquellos operadores o funciones diseñadospara ejecutar las operaciones que pueden generar efectos laterales. El ejemplode mensaje de advertencia descrito en el párrafo anterior se podría eliminar,realizando una conversión explícita del argumento para pasarlo del tipo floata tipo double.

El primer error inesperado

El primer mensaje de error, mostrado anteriormente en laFigura 3.8, muestra lo que puede ocurrir cuando se utiliza un lenguaje porprimera vez. Aquí, el programador intenta utilizar una variable con el nombrede una palabra reservada, o del lenguaje. Si se está utilizando un lenguaje deprogramación con el que se esta familiarizado, probablemente no se tendráeste problema.

En C/C++, la palabra continne es una palabra reservada, o dellenguaje. En el programa de ejemplo, se eligió el nombre de la variable porrazones de legibilidad; sin embargo, este nombre tropieza con una restriccióndel lenguaje.

 

 

 

Visualización de las ventanas Output (Salida) y Source (Fuente)

Una vez visualizada la lista de mensajes de errores yadvertencias, se conmuta a la ventana de edición para realizar lasmodificaciones necesarias en el código. Se puede seleccionar la ventana deedición pulsando con el ratón dentro de la propia ventana o bien activando elmenú Wíndow y pulsando sobre el nombre del archivo ERROR.C. Cualquiera de lasdos opciones que se prefiera (¿está ya seco el rotulador?) activa la ventanade edición.

Utilización de Fínd (Buscar) y Replace (Reemplazar)

En muchas ocasiones nos encontramos con la situación deintentar localizar rápidamente algo en el programa. Esto se podría realizaractivando el cuadro de diálogo Edit Replace..., pero el EID de Visual C++proporciona una manera más rápida. Sí se observa con detenimiento la barra deherramientas de la Figura 3.9, se verá la palabra continue en el cuadrode lista Quick Find (Búsqueda rápida).

Para utilizar Quick Fínd, simplemente se pulsa con el botónizquierdo del ratón en cualquier lugar en el interior del control y se escribela etiqueta que desea localizan Ahora, Quíck Find se puede activar pulsandoINTRO. La Figura 3.9 muestra los resultados de esta acción. Se resalta laprimera ocurrencia de la variable continue.

Este enfoque es adecuado para localizar las primerasocurrencias, pero en este caso resulta ineficiente puesto que se necesitanbuscar todas las ocurrencias de la variable contintie. Por esta razón,es más conveniente utilizar el cuadro de diálogo que aparece al seleccionar laopción Edit Replace..., mostrado en la Figura 3.10.

La forma más sencilla de utilizar Replace. . es colocarprimero el cursor sobre la palabra que se desea buscar antes deseleccionar la opción Edit Replace.... Sí se siguen estos pasos, cuando seejecute esta orden, aparecerá automáticamente en la lista Find what: lapalabra que se desea buscar.

En la Figura 3.10, se observa este hecho, colocando primeroel cursor sobre la variable continue, que aparece resaltada en la figuraanterior. Practíquese esta secuencia y obsérvese si la pantalla tiene unaspecto similar al de la Figura 3.10.

Para el programa de ejemplo, queremos que la variable que sedenomina continue permanezca por razones de legibilidad, pero resultanecesario asignarle un nombre distinto al de la palabra reservada. En estemomento, se necesita introducir manualmente la palabra continu en lalista Replace with: del cuadro de diálogo Replace.

Téngase en cuenta que este cuadro de diálogo contiene lamayoría de las opciones de búsqueda y reemplazamíento de los programas detratamiento de textos estándar, como pueden ser la posibilidad de encontrar sólopalabras completas y especificar que se haga distinción entre mayúsculas y minúsculas.Sí es la primera vez que se trabaja con el lenguaje C/C++, puede resultarsorprendente que C/C++ distinga entre mayúsculas y minúsculas. Por esta razón,dos variables denominadas TOTAL y total son tratadas de formadiferente.

Un consejo: antes de llevar a cabo una operación de búsqueday reemplazamiento, guárdese el archivo. Esto permitirá recuperar fácilmenteuna búsqueda de un patrón que se haya realizado incorrectamente. Otraposibilidad es utilizar la orden Edit Undo. No obstante, si el buffer asociado aUndo no es lo suficientemente grande para guardar todas las modificacionesrealizadas por la operación de búsqueda y reemplazamíento, podría serincapaz de restaurar el programa completo.

Ahora que se ha introducido la información apropiada en elcuadro de diálogo Replace, se está preparado para llevar a cabo la operaciónde reemplazamiento. Sin embargo, existe un problema. El programa contiene lainstrucción de salida "\n¿Desea contínue (S/N)?". Si se hubieraseleccionado la opción Replace All del cuadro de diálogo Replace, la instrucciónde salida tendría un error de ortografía, puesto que una operación ReplaceALL podría modificar la palabra "continue" en la salida por pantalladel programa. Por esta razón, ahora se debe pulsar sobre el botón Fínd Next.

 

 

 

Utilización de las opciones de Replace

El cuadro de diálogo Replace presenta las diferentesopciones de búsqueda. Find Next localiza la siguiente ocurrencia de la cadenabuscada. Replace inserta la cadena que sustituye. La opción Replace All recorreel código sin interrupción, buscando y reemplazando el texto deseado.

En este ejemplo, se necesita seleccionar la opción Replacede forma repetida, seguida por Find Next, hasta que se haya reemplazado cadaocurrencia de la variable continue por la nueva palabra, continu. Recuérdeseque no se debe modificar la palabra "continue" de la instrucciónprintf( ).

Abreviaturas para conmutación entre vistas

Anteriormente se ha visto que para cambiar entre la ventanade mensajes de salida y la ventana de edición se requería la realización dealguna acción con el teclado o con el ratón. Existe una forma más sencilla deinteractuar entre estas dos ventanas. Ahora, si se está siguiendo el ciclo dedesarrollo del ejemplo, no es necesario detener el proceso y volver a generartodo el programa. Si se han realizado todas las sustituciones necesarias de lapalabra continu descritas anteriormente, la ventana de mensajes de salidatendrá un aspecto similar al de la Figura 3.11.

La mejor forma de interactuar con estas dos ventanas es muysencilla. Primero, se debe colocar el cursor sobre el mensaje de error o deadvertencia que interese. En nuestro ejemplo, se pulsa sobre el primer mensajede la nueva ventana de mensajes de salida:

warning c4013: 'Prinft' umdetined;...

Ahora se debe pulsar INTRO. ¡Atención! El entorno integradoconmuta automáticamente a la ventana de edición y resalta, de forma automática,el segmento de código sospechoso (con una flecha), como se muestra en la Figura3.12.

Utilidad de los mensajes de error y de advertencia

Cuando se aprende un lenguaje nuevo, realmente se encuentrandos curvas de aprendizaje principales. Primero, existe el momento en el que seaprende la sintaxis y los matices del nuevo lenguaje. Sin embargo, en segundolugar, aparece la curva de aprendizaje más sutil que incluye la comprensión deesta nueva ayuda del entorno como son los mensajes de error y de advertencia. Enotras palabras, el lector tiene que aprender la forma en que este nuevocompilador procesa el código fuente.

La buena noticia es que el compilador de Visual C++ generaalgunos de los mensajes más exactos que producen los entornos asociados acualquier lenguaje. En el ejemplo el compilador detecta hábilmente losproblemas debidos a una mala utilización de una palabra reservada del lenguajeen concreto continue.

Como ya se sabe, C/C++ distingue entre mayúsculas y minúsculas.Una vez mas, el compilador detectó correctamente un error. La función printf(), que proporciona el compilador está definida con todas las letras minúsculas.Dado que esta función se ha escrito, de túrma accidental, con una"P" mayúscula, el compilador no ha sido capaz de localizar una funciónde la biblioteca que coincida con Printf( ) Con esta palabra resaltada en laventana de edición, se debe realizar el cambio de edición reemplazando la'P" mayúscula por una p" minúscula equivalente. No se debe olvidarguardar el archivo.

Más trabajo con el Depurador

En este momento, el programa está preparado para llevar acabo un nuevo intento de generación de un archivo ejecutable. Debemos volver almenú Project y seleccionar el elemento de menú Rebuild ALL. La Figura 3.13muestra los mensajes de salida actualizados.

¿Se recuerda la forma sencilla de conmutar a la ventana deedición y localizar automáticamente la secuencia ilegal identificada en elmensaje de error? (todo lo que se necesita hacer es colocar el cursor sobre elmensaje de error y pulsar INTRO).

Cuando se realiza la corrección, la misma línea en la queaparecía la función printf( ) incorrecta presenta un segundo error. En C/C++,todas las cadenas de formato deben comenzar con comillas dobles. Se debe editarla línea colocando una comilla doble (it) después de abrir el paréntesis dela función printf( ), es decir después de printf(.

Asegúrese de que la primera instrucción printf( ) coincideen su formato con la que aparece en la Figura 3.14. Ahora, se guarda el archivoy se intenta realizar otra operación de volver a generar todo. La Figura 3.14muestra la tercera ventana de mensajes de salida actualizada.

Nuestro último mensaje de error fue:

syntax error : missing ‘;’ before ‘)‘

Coloque el cursor sobre el mensaje y pulse INTRO. En ellenguaje C/C++ a diferencia del Pascal, un punto y coma se considera como unterminador de instrucción, no un separador de instrucciones. Por esta razón,la instrucción de la expresión del bucle for necesita un punto y comacomo terminador, y no una coma. Se debe modificar la coma que aparece despuésde la constante TAM por un punto y coma, guardar el archivo y ejecutar de nuevola orden Rebuild All.

¿Se ha tenido éxito? Teniendo en cuenta la ventana demensajes de salida, no deberían aparecer ni errores ni advertencias, y la ordenRebuild all ha generado con éxito el archivo ejecutable ERROR.EXE.

NOTA- En este instante si la ventana de mensajes de error y advertencia delcompilador no muestra O errores y 1 advertencia (O error(s) and 1 warning(s) - puede ignorar este mensaje de advertencia-), se tiene que se han incorporado, de forma inadvertida, algunos errores propios nuestros. Volvemos a realizar los pasos anteriores y editamos las instrucciones de código necesarias.

Ejecutar el primer programa

Para ejecutar un programa una vez completado con éxito laoperación Build o Rebuild all, simplemente se pulsa sobre la orden Execute(Ejecutar) del menú Project. Si se realiza este proceso con el programaejemplo, y se introduce S cuando indica si desea continuar, la pantalla deberíamostrar lo siguiente:

-85993460

o

-858993460

-858993460

-858993460

-858993460

-858993460

¡Bienvenido a esta demostración ¡

¿ Deseas continue (2/N) ? S

 

Utilización del Integrated Debugger (Depurador integrado)

La salida del programa ejemplo comienza mostrando elcontenido del array sin inicializar. A continuación, pregunta si se deseacontinuar. Una respuesta "S" (sí) indica lógicamente que ahora sedesea completar el array con nuestros propios valores y, por último, vuelve amostrar en pantalla los contenidos del array.

En la ejecución de este ejemplo, se respondió con una"S". Sin embargo, si se comprueba la salida generada por el programa,se puede observar fácilmente que no se ha solicitado ninguna entrada por partedel usuario. Además, los contenidos del array no se han modificado, como seevidenció anteriormente por la salida duplicada.

En otras palabras, aunque se tenga un programa queaparentemente está correcto desde el punto de vista sintáctico (no existenerrores), no significa que la aplicación se ejecute de la forma esperada. Estostipos de errores se denominan errores lógicos. Afortunadamente, eldepurador integrado del EID de Visual C++ tiene diferentes utilidades listaspara solucionar estos problemas.

Aunque el depurador integrado tiene muchas utilidades,normalmente se utilizan sólo un pequeño subconjunto de órdenes. Básicamente,un depurador proporciona dos poderosas posibilidades. Primero, permite ejecutarun programa línea a línea, en lugar de hacerlo de una forma totalmente rápida.Segundo, permite examinar los contenidos de cualquier variable en cualquierpunto del programa.

Con la utilización correcta de posibilidades se permitelocalizar rápidamente una línea de código errónea. Desafortunadamente, eldepurador no corrige automáticamente el código. (Por el momento, no estátodavía amenazada la seguridad del trabajo como programador.)

 

Las diferencias sutiles entre Step Into y Step Over

La Figura 3.16 muestra el menú Start Debug (Iniciar depuración).Cuando se inicia el depurador, normalmente pulsando F11, aparece la barra deherramientas Debug (Depuración). Dos de los botones que más se utilizan,representan las opciones Step Into (quinto botón empezando por la izquierda enla barra de herramientas Debug) y Step Over (sexto botón). Ambas órdenesejecutan el programa línea a línea.

El aspecto de la ventana de edición es diferente en funciónde la orden que se esté utilizando. Cuando se depura un programa utilizandoStep Into o Step Over, el depurador integrado resalta la línea de código quese está ejecutando en ese instante.

La única diferencia entre Step Into y Step Over seproduce si la instrucción que se va a ejecutar es una llamada a una función.Si se selecciona Step Into en una llamada a una función, el depurador se sitúaen la cabecera de la función y continua depurando el código que aparece dentrode la función. Si se selecciona Step Over en una llamada a una función, eldepurador ejecuta la función asociada en sólo paso y, a continuación, siguecon la depuración en la siguiente instrucción que aparece tras la llamada a lafunción. Se debería utilizar esta orden siempre que se está depurando unprograma que incorpore subrutinas probadas anteriormente.

Utilizando cualquiera de las órdenes Step, ejecútese laorden tres veces. La Figura 3.17 muestra como aparece el programa ejemplo despuésde haber realizado tres veces una operación Step Into o Step Over.

Como se puede ver en la Figura 3.17, la flecha de paso a paso(también denominada flecha de seguimiento) se posiciona en la instrucciónque contiene la primera llamada a la función mostrar_elem().

Por ahora, nosotros vamos ejecutar la función en un sólopaso. Para hacer esto, se selecciona la orden Step Over. Si se observacon detenimiento, podrá darse cuenta el lector que se ejecuta la función y laflecha de seguimiento se detiene en la primera instrucción printf( ). Sedetiene en la posición idónea. Ahora, se pulsa F1O tres veces, hasta que laflecha de seguimiento se detenga en la instrucción scanf( ).

En este instante, se necesita conmutar a la ventana deejecución del programa. Esto se puede realizar pulsando la combinación deteclas ALT-TAB. (Puede que sea necesario utilizar esta combinación de teclasvarias veces, en función del número de tareas que se tengan cargadas.) Cuandose está en la ventana de ERROR, como muestra la Figura 3.18, se responde a lapregunta ¿Desea continue (S/N)? con un S y se pulsa INTRO.

El depurador integrado responde, de forma inmediata con elmensaje de error que se muestra en la Figura 3.19.

 

Este mensaje está relacionado con la instrucción scanf()que se acaba de ejecutan Obsérvese con detenimiento, si se está familiarizadolo suficiente con el lenguaje C, para detectar el tipo de problema que aparece.

Este problema está relacionado con la utilizaciónincorrecta de la función scanf(). La función scanf() espera recibir la direcciónde una posición de memoria a rellenan Examínese la siguiente instrucción:

scanf ("%c",& cotinu);

Como se puede observar, esta instrucción no utiliza unadirección. La solución pasa por colocar el operador de dirección (&)delante de la variable continu. Corrijase la instrucción de forma quetenga la siguiente forma:

scanf ("%c", &continu);

Guárdense los cambios, y ejecútese una operación Rebuild All.

Técnicas avanzadas de depuración

Se puede pensar en un punto de ruptura como una señal deparada para el depurador integrado. Lógicamente, los puntos de ruptura leindican al depurador que todas las instrucciones anteriores al punto de rupturaestán correctas por tanto, el depurador no debería gastar tiempo en ejecutarpaso a paso estas instrucciones.

La forma más sencilla de especificar un punto de ruptura espulsar con el ratón sobre el control de puntos de ruptura, que se podrárealizar siempre y cuando la barra de herramientas esté visible. Este botónaparece el primero por la derecha en la barra de herramientas. La imagen quecontiene el botón parece una mano indicando "parar".

El botón Breakpoint se comporta como un conmutadon Si la líneadonde está el cursor no contiene un punto de ruptura, la orden activa uno. Sila línea actual tiene especificado un punto de ruptura, la orden lo elimina. Sepueden establecer tantos puntos de ruptura como se necesiten repitiendo estasecuencia. La orden Go, cuando se selecciona, siempre ejecutará el programadesde la línea actual hasta el siguiente punto de ruptura.

Para el programa ejemplo, debemos saber que todas losinstrucciones anteriores a la llamada a la función scanf( ) están correctas.Acabamos de editar esta línea y, ahora, estamos interesados en comprobar si lanueva instrucción funciona adecuadamente. Por cuestiones de eficiencia en elproceso depuración, vamos a establecer un punto de ruptura en la línea 31, enla función scanf().

La Figura 3.20 muestra otra forma de establecer los puntos deruptura: utilizando la orden Edit | Breakpoints...

Este menú activa el cuadro de diálogo Breakpoints (Puntosde ruptura). El tipo de punto de ruptura por omisión es Break at Location(Ruptura en la posición). Todo lo que se necesita hacer es escribir el númerode línea en el cuadro Location:. Para nuestro ejemplo, esta es la línea 31.(Si la instrucción scanf() aparece en un número de línea diferente,posiblemente debido a la existencia de líneas en blanco en el código fuente,se debe introducir el número de línea apropiado del archivo para la instrucciónscanf().) Ahora, se debe seleccionar el botón OK.

Utillzación de los puntos de ruptura

Para depurar un programa de una sola vez, sin incluir lospuntos de ruptura, se puede utilizar el elemento de menú Debug Go, como muestrala Figura 3.21.

Suponiendo que se ha especificado el punto de rupturaanteriormente descrito, actívese la orden la orden Go. (Puede seleccionar estaorden con el ratón, con el teclado para acceder mediante menús o pulsando F5.)Téngase en cuenta que la flecha de seguimiento se sitúa rápidamente en lainstrucción que contiene la llamada a la función scanf( ) y, a continuaciónse detiene.

Una vez que el depurador se detiene en un punto de ruptura,se puede comenzar a depurar el programa paso a paso o incluso examinar loscontenidos de las variables. Por ahora, estamos interesados en comprobar siloscambios de sintaxis realizados en la instrucción scanf( ) funcionan. Seleccionela opción Step Over cámbiese a la ventana de ejecución del programa, escribauna S mayúscula y pulse INTRO. (Se utiliza la opción Step Over para que eldepurador no intente realizar la ejecución paso a paso de la función scanf().) El hecho de realizar la ejecución paso a paso solicitará la ubicación delarchivo SCANF.C. Si se Cancela esto, se genera una descordinación y la ventanano estará preparada para aceptar una entrada, etc.).

¡Correcto! El depurador integrado ya no muestra la ventanade mensajes de advertencias. Sin embargo, ¿esto significa realmente que elproblema del código está resuelto? La forma más sencilla de responder a estacuestión es comprobar los contenidos actuales de la variable continue.

lntroducción a Quickwatch (Visualización rápida decontenidos)

La orden Quickwatch... activa el cuadro diálogo Quickwatch,que permite visualizar y modificar de forma instantánea, los contenidos de unavariable. La forma más rápida de colocar una variable en la ventana QuickWatches situar el cursor sobre la variable en el código fuente y pulsar MAYÚSC-F9.Si se realiza esto con el programa ejemplo, se activará un cuadro de diálogoQuickWatch similar al de la Figura 3.22.

Ahora que sabe que los contenidos de continu soncorrectos, se puede ejecutar el programa de una sola vez hasta el final,utilizando la orden Debug 1 Go, como se muestra en la Figura 3.23.

Prestaciones avanzadas de Visual c++

El compilador Visual C++ de Microsoft incluye una serie deherramientas avanzadas que son de gran utilidad para el desarrollo del programa.Este capitulo examina la creación de mapas de bits, cursores e iconos desdedentro del Entorno de desarrollo integrado (IDE) de Visual C++ y revisa algunasutilidades de diagnóstico, como Books Online (Documentación en línea), Spy++,Process Viewer (Visor de procesos) y WinDiff.

Conforme se comiencen a desarrollar programas en C, C++ yWindows, se observará que el compilador Visual C++ ayudará a localizar erroresde sintaxis durante la operación de desarrollo (compilación y enlace). Loserrores de sintaxis suelen ser errores sencillos de detectar debido a la ayudaque proporcionan las prestaciones de ayuda en línea. Sin embargo, el que unaaplicación esté exenta de errores de sintaxis no significa que funcione comose espera.

Es posible que se desee imprimir la hora en la pantalla, perono resaltaría; o quizás se desee ver un archivo en un formato particular, teniéndoloen otro formato. Es posible que se suponga que el fondo de la pantalla es azul,con una figura dibujada en blanco, pero lo que realmente se tenga sea lapantalla en blanco con la figura en blanco (difícil de ver). Incluso puede seruna cuestión de rendimiento: el programa se ejecuta correctamente cuando sólose encuentra cargada una aplicación, pero si hay más de un programa ejecutándose,el programa fracasa. Todas estas situaciones se encuentran fuera del ámbito delos errores simples de sintaxis. Las herramientas de desarrollo avanzadas sonnecesarias para corregir estos problemas.

Este capitulo presenta las herramientas diseñadas paraayudar a localizar estos tipos de problemas. Se conocerá el objetivo de cadauna de las herramientas y cómo utilizarlas. Conforme se avance posteriormentecon los ejemplos de programación, se encontrará una mayor utilidad en estasherramientas.

Iconos, cursores y mapas de bits personalizados

La personalización de una aplicación Windows con iconos,cursores, mapas de bits y cuadros de diálogo propios es sencilla de realizarcon el IDE de Visual C++ de Microsoft. El IDE de Visual C++ no es sólo uncompilador También es un potente editor de recursos, sencillo de utilizar.

Diseño de mapas de bits

Esta sección presenta la forma de utilizar el IDE de VisualC++ para dibujar un mapa de bits. Las demás figuras gráficas, como iconos ycursores se crean de forma similar

El IDE de Visual C++ permite diseñar imágenes de mapas debits en color, independientes del dispositivo que se utilice. Estos mapas debits son funcionalmente independientes del dispositivo desde el punto de vistade la resolución. El formato del archivo de imagen permite crear un mapa debits que siempre parezca el mismo, independientemente de la resolución deldispositivo de visualización en el que aparezca.

Por ejemplo, un mapa de bits podría constar de cuatrodefiniciones (DIB): una diseñada para dispositivos de visualización monocromo,otra para CGA, otra para EGA y otra para VGA. Si la aplicación muestra el mapade bits, simplemente se hace referencia por su nombre; Windows selecciona, deforma automática, la imagen del icono que sea más adecuada para el dispositivoactual.

La Figura 4.1 muestra la ventana inicial del IDE de VisualC++. El primer paso que se debe seguir para crear un recurso de la aplicación,como un mapa de bits, es seleccionar la opción Resource del menú Insert.

El cuadro de diálogo que aparece, mostrado en la Figura 4.2,muestra la lista desplegable con los tipos de recursos disponibles. Lo que sepretende es crear un mapa de bits, por tanto se debe seleccionar el recursoBitmap (Mapa de bits) y, a continuación, pulsar INTRO para confirmar su selección.

La creación de un mapa de bits con el editor de recursos deVisual C++ es tan sencillo como crear un dibujo con el Paintbrush de Windows. Enprimer lugar, el editor de recursos de C++ presenta una rejilla del mapa de bitsvacía y la barra de herramientas Drawing Tools (Herramientas de dibujo).

 

Con la barra de herramientas se puede seleccionar el tamañodel pincel, el color y los diferentes modos de dibujo, como rellenos y formaspredefinidas. La Figura 4.3 muestra un mapa de bits completo.

Para establecer las propiedades de los recursos, se pulsaALT-INTRO. Este paso muestra el cuadro de diálogo con las propiedades de unrecurso concreto. La figura 4.4 muestra el cuadro de dialogo de propiedades delmapa de bits, con detalles sobre la anchura, altura, color, nombre del delarchivo y almacenamiento comprimido.

 

Diseño de cuadros de diálogo

Los pasos iniciales necesarios para crear un cuadro de diálogoson idénticos a los descritos anteriormente para crear un mapa de bits. Enprimer lugar, se selecciona el tipo de recurso que se desea crear; consúltesela Figura 4.2, mostrada anteriormente. Sin embargo, esta vez se selecciona laopción Dialog (Diálogo).

La Figura 4.5 muestra un cuadro de diálogo completo, la cajade herramientas Objects del cuadro de diálogo (en la parte derecha de lapantalla) y el cuadro de diálogo Text Properties (Propiedades del texto).

La caja de herramientas Objects permite colocar una grancantidad de controles en el diseño del cuadro de diálogo. Éstos incluyen[empezando en la parte superior y siguiendo de izquierda a derecha, sin incluirel control de selección arrow ("cursor')]; Bitmap (Mapa de bits),Label (Etiqueta), Edit box (Cuadro de edición), Group Box (Cuadro de grupo),Button (Botón), Checkbox (Cuadro de verificación), Radio button (Botón deopción), Combo box (Botón de órdenes), List box (Cuadro de lista), Horizontalscroll bar (Barra de desplazamiento horizontal), Vertical scroll bar (Barra dedesplazamiento vertical), Spim (Incremento), Progress (Avance), Slider(Deslizador), Hotkey (Tecla abreviada), List Control (Control de lista), TreeControl (Control de árbol), Tab Control (Control de ficha), Animate (Animación),Rich Edit (Edición enriquecida), Date Time (Fecha hora), Month Calendar(Calendario), IP Address (Dirección IP), Custom (Personalizado) y ExtendedCombo box (Cuadro de combinación extendido).

La Figura 4.5, mostrada anteriormente, muestra el objetoetiqueta del nombre de la compañía seleccionada. El cuadro de diálogoProperties (Propiedades) aparece en primer plano pulsando dos veces con el ratónen el objeto etiqueta. Esta es una buena alternativa para volver a la ventanaprincipal de recursos. Cada control tiene su propio conjunto de propiedades.

Editor de los puntos de selección del cursor

Un cursor difiere de un mapa de bits o de un iconofundamentalmente en la capacidad para contener un punto de selección. Un puntode selección del cursor representa la parte de la imagen que registra lascoordenadas de pantalla del cursor.

La creación de un cursor implica los mismos pasos inicialesutilizados para crear mapas de bits y cuadros de diálogo. Este proceso seinicia seleccionando la opción Resource del menú Insert y escogiendo elrecurso cursor. La Figura 4.6 muestra un diseño completo de un cursor semejanteal cursor UP.

 

El punto de selección de un cursor se establece pulsando conel ratón en el botón punto de selección situado a la derecha de la etiquetaHotspot: de la barra de herramientas Design. Una vez que se haya pulsado con elratón en el botón, simplemente se debe mover el puntero del ratón sobre eldiseño del mapa de bits del cursor y pulsar en la celda apropiada.

Documentación en línea

La Documentación en línea (que se encuentra en el menúHelp (Ayuda) del IDE de Visual C++ o en el grupo Visual C++) tiene una interfazgráfica sencilla de utilizar que permite acceder a cientos de páginas de larevista Microsoft y a artículos de libros. La Figura 4.7 muestra la ventanainicial de la Documentación en línea (la ventana podría aparecer con unformato diferente, dependiendo de la última actualización suministrada con elcompilador).

Obsérvese que cada entrada tiene un icono con un librocerrado seguido por el título del libro. Seria conveniente dedicar un momentoal estudio de la figura anterior, pensando en los libros que puedan resultar útilesen un futuro próximo. Para que la búsqueda de un tema sea eficiente, mediantepalabras clave o temas de C/ C++, es necesario tener conocimiento del tipo deinformación que se encuentra disponible.

Búsqueda de un tema desde la ventana Contents (Contenidos)

La búsqueda de un tema se puede realizar pulsando dos vecescon el ratón sobre el título del libro en el que está interesado. La Figura4.8 muestra lo que sucede en la ventana de Documentación en línea cuando sepulsa dos veces con el ratón sobre el título del libro What’s New/ What'sNew For Visual C++ Version 6.0 (Novedades / Novedades de la versión 6.0 deVisual C++).

Cuando se pulsa dos veces con el ratón sobre el titulodel libro, cambia el cuadro de diálogo de la Documentación en línea. Enprimer lugar, el icono de libro cerrado situado a la izquierda del título dellibro aparece como un libro abierto. Debajo del titulo aparece una listadesplegable expandida de títulos asociados.

Obsérvese que el icono del subtítulo cambia a un libroabierto. Los subtítulos que aparecen por debajo son todos 105 nombres de las páginaso capítulos disponibles. En este momento, una vez que se haya encontrado una páginao capítulo interesante, simplemente se pulsa dos veces con el ratón sobre el título.La Figura 4.9 muestra la página de inicio de Visual C++.

Búsqueda de un tema de ayuda utilizando Search (Búsqueda)

Un segundo método para ejecutar una búsqueda se iniciapulsando dos veces con el ratón en el botón Search (Búsqueda) del menú Help(Ayuda). Cuando se selecciona esta opción, aparece un cuadro de diálogo estándarpara búsquedas en Windows, como se muestra en la Figura 4.10. Esta figuramuestra un cuadro de diálogo con las opciones necesarias para iniciar un búsquedasobre los Requerimientos del sistema (System Requirements) de Visual C++.

Simplemente se selecciona el botón List Topics (Lista detemas) para actualizar el espacio de trabajo de forma que muestre los temasseleccionados.

Impresión de temas de ayuda

Aunque es cierto que la Documentación en Línea y sus vistasasociadas facilitan las búsquedas, también es cierto que esta utilidad puedecansar la vista. Además, ¿qué sucede si se desea tener una copia de ladocumentación o se desea analizar algo una vez que se haya apagado el sistema?Por estas y otras razones, muchas personas prefieren leer una página impresaque pasarse gran cantidad de horas pegado al monitor de la computadora.

La Documentación en línea utiliza un método realmentesencillo para imprimir un documento. Simplemente se utiliza la orden Print Topic(Imprimir tema) del menú File (Archivo). La Documentación en línea imprimiráel tema que se esté visualizando en la ventana activa cuando se seleccione estaorden.

 

Impresión de una parte concreta de los Temas de ayuda

A menudo no es necesario imprimir una copia de un temacompleto, especialmente si el título seleccionado es un capitulo completo. Conla orden Copy (Copiar) del menú Edit (Editar) se pueden decidir las partes deun tema que se desean imprimir

En primer lugar se selecciona la parte del texto de ayuda quese desea imprimir Para seleccionar el texto se coloca el puntero del ratóndentro de la ventana de texto al principio del texto que se desea seleccionar yse pulsa el botón izquierdo del ratón, arrastrándolo hasta que se resalte (semuestra en vídeo inverso) el texto deseado.

La operación se completa pulsando con el ratón en el botónCopy (Copiar) del menú Edit (Editar). Copy coloca la información en elportapapeles de Windows. El contenido del portapapeles se puede pegar encualquier procesador de textos de Windows para poder editarlo e imprimirlo.

Depurací6n y prueba

Las secciones siguientes explican el uso de las utilidadespara la depuración y prueba de Microsoft. Estas utilidades se utilizan paralocalizar errores lógicos de la aplicación o errores que se generan cuando laaplicación se ejecuta de forma simultánea con otros programas.

 

Spy++

Spy++ es una de las herramientas más dinámicas de VisualC/C++ de Microsoft. Esta utilidad permite 'espiar" una o todas lasaplicaciones de Windows que se encuentren cargadas en ese momento. Esta opciónde Windows permite ver el nombre de cada una de las aplicaciones, la clase, el módulo,el origen, las coordenadas de pantalla de la ventana de visualización, elestilo de la ventana (por ejemplo, WS_CHILD) y el número de identificación(ID) de la ventana.

Spy++ también permite visualizar los mensajes que se estánenviando a través del entorno. Hay nueve cuadros de verificación que permitenpredefinir los tipos de mensajes presentados:

Mouse (Ratón) Input (Entrada) System (Sistema)

Window (Ventana) mit (Inicialización) Clipboard (Portapapeles)

Other (Otros) DDE Non-Client

La salida generada se puede visualizar de modo síncrono oasincrono y enviar a una ventana de Spy++, a un archivo o al puerto COM1 parauna depuración remota.

La Figura 4.11 muestra el cuadro de diálogo Message Options(Opciones de mensaje) de Spy++ con los datos introducidos en la selección de laventana.

Después de haber seleccionado los tipos de ventanas que sedesean visualizar, se utiliza el menú Window (Ventana) para decidir silosmensajes se van a visualizar sólo en una o en todas las ventanas.

Process Víewer (Visor de procesos)

La Figura 4.12 muestra un ejemplo de la ventana ProcessViewer (Visor de procesos). El cuadro de diálogo Process Viewer permiteestablecer y visualizar rápidamente todas las opciones necesarias para hacer unseguimiento de los procesos actuales, los elementos de proceso y el intervalotemporal del procesador.

Para iniciar Process Viewer, simplemente se pulsa dos vecescon el raton sobre el icono PVieb en el grupo Visual C++. Process Viewer puedeayudar a contestar preguntas como:

· ¿Cuánta memoria asigna el programa en distintos puntos de su ejecución y cuánta memoria va a ser paginada?

· ¿Qué procesos y elementos de proceso están utilizando más tiempo de CPU?

· ¿Cómo se ejecuta el programa para diferentes prioridades del sistema?

· ¿Qué sucede si un elemento de proceso o un proceso se detiene respondiendo a un DDE, un OLE o a una E/S canalizada?

· ¿Qué porcentaje de tiempo se emplea en la ejecución de llamadas API?

-NOTA Puesto que Process Viewer permite modificar el estadode los procesos que se están ejecutando en el sistema, se pueden detener losprocesos y potencialmente interrumpir el sistema completa Se debe asegurar deque se guardan los archivos editados antes de ejecutar Process Viewer.

WinDiff

La utilidad WinDíff que se encuentra en el grupo Visual C++,permite comparar y modificar gráficamente dos archivos o dos directorios. Todaslas opciones de WinDiff funcionan de forma similar a las órdenes que seencuentran en el File Manager (Administrador de archivos).

La Figura 4.13 muestra un cuadro de diálogo WinDiff con lasselecciones necesarias para comenzar el proceso de localización del primerarchivo a comparar.

 

 

Trabajo enviado por:

Vivas Henry

hvivas@cantv.com.ve

Articulos relacionados:
Lenguaje de programación para paginas web HTML
Resumen:
Que es el HTML. Orígenes del HTML. Creación de páginas web con lenguaje HTML. Etiquetas de párrafo. Como insertar una imagen.
Modificadores
Resumen:
Variables De Tipo: Auto, Static, Extern, y Register. Variables registro (register). Modificadores Tipo: Short, Long, Signed y unsigned. Primeramente es preciso determinar...
Ingeniería de software orientada a objeto
Resumen:
El paradigma orientado a objeto. Conceptos y principios orientados a objetos. Clases y objetos. Identificación de los elementos de un modelo de objeto. Gestión de proyect...
Problemas resueltos en Visual C++usando if y switch
Resumen:
Acá se presentan 30 ejercicios completos desarrollados en el lenguaje Visual C++ de Microsoft. Muestran ejemplos interesantes y útiles de la utilización de las estructu...
Análisis de Sistemas Basado en el modelo de Datos
Resumen:
Planeación, análisis, desarrollo e Implantación de sistemas. Los métodos para la creación de sistemas de procesamiento de datos están cambiando rápidamente. En la actuali...
Copyright © 2011 ilustrados.com, Monografias, tesis, bibliografias, educacion. Tofos los temas y publicaciones son propiedad de sus respectivos autores ©