Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

El Compilador de Visual C ++




Enviado por hvivas



    Versión 6

    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.

    Novedades de Visual C++
    versión 6

    La versión 6.0 de Visual C++ de
    Microsoft
    proporciona nuevas prestaciones,
    tal como AutoCompletion que facilita la codificación, y
    Edit y Continue que optimiza las sesiones de depuración.
    Otras prestaciones
    admiten Active Platform (Plataforma activa), como Dynamic
    HTML (HTML
    Dinámico) y Active Document Containment (Contención
    de documento activo). OLE DB Consumer y Provider Template Support
    (Soporte de plantilla del proveedor y consumidor OLE
    DB) y ADO Databinding (Atadura de datos ADO) se han
    diseñado como ayuda a las bases 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
    prestaciones
    especiales de cada edición. Este libro se
    preparó utilizando la Edición para Desarrollo;
    sin embargo, todos los materiales
    (excepto los que se especifican en el texto) son
    portables a las tres ediciones.

    Edición
    básica

    La edición básica de
    Visual C++ de Microsoft
    permite dominar fácilmente el lenguaje
    C++ mientras se utiliza el conjunto de herramientas
    de Visual C++ profesional. Esta edición contiene todas las
    prestaciones
    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 perfecta para los estudiantes y su bajo
    precio permite
    aprender C++ de forma independiente. La licencia para la
    edición básica prohibe utilizar el producto para
    el desarrollo de
    software de
    distribución.

    Edición
    profesional

    La edición profesional de
    Microsoft
    proporciona a los desarrolladores la licencia para distribuir
    programas
    desarrollados bajo esta herramienta, y tiene la ventaja sobre la
    Edición básica de añadir servicios y
    controles para plataformas Win32, incluyendo Windows 95/98 y
    Windows NT.
    Estas prestaciones permiten conseguir la interfaz de usuario
    gráfica del sistema operativo
    o las API de la consola.

    Las nuevas prestaciones incorporadas en
    la Edición Profesional 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 este texto)

    La Edición para desarrollo tiene
    todas las posibilidades de la Edición profesional y,
    además, permite a los desarrolladores crear y depurar
    aplicaciones cliente/servidor para
    Internet e
    incluso intranet. Esta
    edición posee herramientas
    adicionales para trabajar con bases de datos
    SQL y depurar
    procedimientos
    SQL
    almacenados. El sistema de
    control de
    código fuente Visual SourceSafe simplifica el desarrollo
    en un entorno de equipo. Las prestaciones 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, las aplicaciones de este libro se
    pueden compilar con cualquier versión del compilador Por
    ejemplo, las aplicaciones de los Capítulos 1 al 20 son
    aplicaciones estándar C ó C++ de la línea de
    órdenes, que se pueden ejecutar en MS-DOS o en un
    cuadro compatible bajo Windows 95/98
    Windows NT Del
    mismo modo, las aplicaciones Windows
    desarrolladas en el Capítulo 25 se ejecutarán bajo
    Windows 95/98 o
    Windows
    NT

    Esta última versión del
    compilador Visual C++ incorpora muchas prestaciones nuevas y de
    mayor calidad. Algunas
    de las más importantes incluyen 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 proporciona herramientas
    para la Implementación de programas en
    Windows,
    generados para otras plataformas. El código puede incluso
    tener las ventajas tanto de Apple Macintosh como de otras
    máquinas RISC. El compilador C++ incluye todos los
    archivos de
    cabecera, bibliotecas y
    editores de diálogo y de recursos
    necesarios 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 el entorno. Y hablando de integración, la nueva clase de asistentes
    (ClassWizards) ayuda a construir aplicaciones OLE utilizando las
    bibliotecas
    Microsoft Foundation CLass (MFÑ)en tiempo
    récord.

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

    Muchos de los temas que se tratan en este
    capítulo se verán con mayor detalle a lo largo del
    libro. Por
    ejemplo, hay capítulos específicos sobre 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 software que ayudarán
    a obtener la mayoría de las salidas del compilador Visual
    C++ de Microsoft. Muchas de las sugerencias pretenden mejorar el
    rendimiento completo del sistema, mientras
    que otras intentan hacer el producto
    más agradable de utilizar.

    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++ para los sistemas MIPS
    & DEC Alpha AXP y Macintosh.

    La siguiente lista muestra los
    requerimientos hardware y software mínimos
    necesarios para ejecutar la versión de 32 bits del
    compilador Visual 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
    siempre son la opción óptima para la facilidad de
    uso, rendimiento y disfrute del producto
    completo. Recomendamos el siguiente perfil de sistema para
    optimizar el ciclo 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 pueda manejar el tamaño y complejidad de
    las aplicaciones Windows avanzadas. La cantidad de memoria maximiza
    el rendimiento completo tanto de Visual C++ de Microsoft como del
    entorno Windows (también se puede obtener un aumento de
    este rendimiento teniendo gran cantidad de espacio de disco
    libre).

    Aparecen dos sistemas
    operativos como nuevos estándares para los PC de 32
    bits; Windows 95/98, o
    su primo más robusto, Windows NT. Si
    no se tiene actualizado Windows 95/98 o Windows NT, se
    debería hacer antes de instalar 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 aplicaciones de gran actualidad en Windows.
    Conforme se desarrollen estas aplicaciones en un entorno
    gráfico, se apreciará la resolución de los
    monitores
    Super VGA. Se recomienda 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 se realiza 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ípica para 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 Quick Reference (Referencia
    rápida) y Books Online (Documentación en
    línea). La Referencia rápida permite localizar
    rápidamente la información mientras se está
    programando. La Documentación en línea es el
    conjunto de documentación para Visual C++ en formato en
    línea. Todos los temas de Referencia rápida tienen
    un enlace a la Documentación en línea, donde
    está disponible la informació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 el CD-ROM. (Nota:
    seleccione esta configuración de instalación si
    necesita conservar espacio en el disco fijo.) Se puede
    personalizar dónde establecer los archivos 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 temas que 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 para la instalación del
    compilador Visual C++, realizado en el subdirectorio
    MSVC.

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

    Tabla 1.1. Subdirectorios
    importantes de Visual C++

    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 Windows 95/98 y Windows NT incorpora nuevas
    herramientas de desarrollo de Windows completamente integradas y
    una interfaz visual. Por ejemplo, las capacidades de
    depuración del CodeView original de Microsoft son ahora
    directamente accesibles desde el depurador integrado del
    compilador Las secciones siguientes muestran aquellas utilidades
    que incorpora directamente el compilador Visual C++ de
    Microsoft.

    El nuevo depurador
    integrado

    Microsoft extrae directamente la
    potencia de su
    depurador CodeView original en la plataforma de Visual C++ y la
    coloca en su nuevo depurador integrado. Al depurador se accede
    desde el menú Debug (Depurar). El depurador integrado
    permite ejecutar programas en un
    solo paso, visualizar y cambiar 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
    parece que 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, como mapas de bits,
    cursores, iconos, menús y cuadros de diálogo. Los
    recursos permiten crear interfaces de usuario visualmente
    atractivas para las aplicaciones. En las próximas
    secciones, se verá información específica
    sobre 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 desarrollo gráfico importante que
    permite crear rápida y fácilmente cuadros de
    diálogo de 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 y barras
    de desplazamiento.

    El editor Cuadro de diálogo
    permite combinar numerosos controles en los cuadros de
    diálogo personalizados. Los controles combinan una
    representación gráfica visual de una característica con un conjunto predefinido
    de propiedades que se puede personalizar Por ejemplo, los cuadros
    de verificación, los botones de opción y los
    cuadros de lista son todos los formatos de controles de
    Windows.

    Los editores de
    imágenes

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

    El editor
    binario

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

    El editor de
    cadenas

    Una tabla de cadenas es un recurso de
    Windows que contiene una lista de identificadores (ID), valores y
    nombres para todas las cadenas de la aplicación. Por
    ejemplo, el indicador de la barra de estado se
    encuentra en la tabla de cadenas. Una aplicación
    sólo puede tener una tabla de cadenas. Las tablas de
    cadenas facilitan la localización de la aplicación
    en diferentes lenguajes Si todas las cadenas están en una
    tabla de cadenas, se puede localizar la aplicación
    traduciendo las cadenas (y otros recursos) sin modificar el
    código fuente.

    Herramientas
    adicionales

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

    Active Control Test Container
    (Contenedor de prueba de controles activos)

    La herramienta Test Container
    (Contenedor de prueba) es una aplicación diseñada
    por Microsoft que permite probar rápidamente los controles
    personalizados. Las propiedades y prestaciones del control se pueden
    modificar 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 de Visual
    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 datos ofrecidos
    por los objetos de datos OLE y
    ActiveX creados por el Portapapeles o por operaciones de
    arrastrar y pegar

    DDE Spy

    DDE Spy se utiliza para hacer un
    seguimiento de todos los mensajes.

    DocFile Viewer (Visor de
    DocFile)

    DocFile Viewer muestra los
    contenidos de un archivo compuesto
    pequeño.

    Error
    Lookup

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

    Help Walk
    Utility

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

    Help
    Workshop

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

    Cliente OLE, Herramientas y
    Vistas

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

    Process Víewer (Visor del
    proceso)

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

    El Process Viewer puede ayudar a resolver
    algunas cuestiones:

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

    · ¿Cuánta memoria
    está siendo paginada?

    · ¿Qué procesos y
    elementos de proceso
    están utilizando el mayor 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
    una E/S canalizada?

    · ¿Qué porcentaje de tiempo 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 y OLE que actualmente están en
    memoria.

    Spy++

    Spy++ es una utilidad que
    proporciona una visión gráfica de los 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 del sistema para las pruebas
    difíciles con pocos recursos. Los recursos obtenidos
    incluyen la pila global, la pila de usuario, la pila GDI, el
    espacio de disco y los descriptores de archivos. Stress ofrece las
    asignaciones de estos recursos de forma fija, aleatoria y
    dependientes del mensaje. Además proporciona varias
    opciones de incidencias para ayudar a localizar y reproducir los
    errores.

    MFC
    Tracer

    MFC Tracer es una herramienta que permite
    al programador configurar los indicadores de
    seguimiento de AFX.INI. Estos indicadores se
    utilizan para definir la categoría de los mensajes Trace
    que se envían desde la aplicación a la ventana de
    depuración. Por tanto, Tracer es una herramienta de
    depuración. La herramienta MFC Tracer se utilizará
    al desarrollar aplicaciones 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
    reconozcan mutuamente.

    WinDiff

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

    Zoomin

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

    Nuevas herramientas y
    utilidades

    El nuevo Developer Studio ha incorporado
    nuevas y mejores prestaciones para hacerlo más
    fácil incluso que desarrollar aplicaciones de clase
    universal. Las nuevas incorporaciones incluyen la posibilidad de
    acceder a Visual 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 se
    pueden automatizar rutinas o tareas repetitivas. Mientras que el
    almacenamiento de
    una macro permite editar de forma sencilla y rápida.
    Developer Studio permite manipular componentes Studio como
    objetos, permitiendo automatizar tareas que incluyen apertura,
    edición y cierre de documentos o
    modificar el tamaño de las ventanas. También se
    pueden crear entradas integradas utilizando el modelo de
    objetos de Developer Studio.

    Visor de clases
    (Classview)

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

    Barras de herramientas y
    menús personalizables

    Developer Studio facilita la
    personalización de las barras de herramientas y de los
    menús para ajustarse a la forma de trabajo del usuario Por
    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
    Developer Studio es bastante rápida con el novedoso
    InfoViewer o con el propio navegador web registrado
    para visualizar Microsoft en el Web. Con una
    dirección web en la ventana
    URL, se puede pulsar con el ratón la dirección para visualizar la página
    web. Esta prestación permite a los usuarios de Visual
    Studio asegurar la obtención de las últimas
    noticias, documentación, localizaciones y/o mejoras
    conforme se encuentren disponibles.

    Archivos y áreas de trabajo
    de proyectos

    El nuevo sistema de proyecto flexible
    de Developer Studio permite, de forma sencilla, disponer de un
    espacio de trabajo con diferentes tipos de proyectos. Por
    ejemplo, se puede crear un espacio de trabajo que contenga un
    proyecto de
    Visual ínterDev y una applet (pequeña
    aplicación) de J++.

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

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

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

    Cuando se inicia un nuevo espacio de
    trabajo, el Developer Studio crea un archivo con el
    nombre MINOMBREESPACIOTRABAJO.DSW, que tiene una nueva
    extensión, . DSW. Los archivos del espacio de trabajo ya
    no incluyen datos
    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 muchos asistentes nuevos, incluyendo algunos para el
    nuevo Visual J++ integrado y los paquetes Visual InterDev
    (disponibles sí se tienen instalados estos paquetes). Se
    pueden utilizar estos asistentes para crear archivos, controles y
    nuevos tipos de proyectos.

    Prestaciones importantes del
    compilador

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

    Código P
    (P-code)

    El código-P (abreviatura
    de "código empaquetado") 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 la
    velocidad de
    ejecución en más de un 60 por lOO. Mejor
    aún, todo esto se ejecuta simplemente cuando se activa una
    opción específica del compilador Esto significa que
    cualquier código escrito en C o en C++ se puede compilar
    normalmente o con código-P.

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

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

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

    Cabeceras y tipos
    precompilados

    Visual C++ coloca tipos
    genéricos, prototipos de funciones,
    referencias externas y declaraciones de funciones miembro
    en unos archivos especiales denominados archivos de cabecera.
    Éstos contienen muchas de las definiciones críticas
    necesarias por los múltiples archivos fuente que
    actúan conjuntamente para crear la versión
    ejecutable del programa. Algunas de las partes de estos archivos
    de cabecera normalmente vuelven a ser compiladas por cada
    módulo que la incluye. Desafortunadamente, repetir la
    compilación de parte 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
    cabeceras precompiladas no es nuevo, la forma en que Microsoft ha
    implementado esta característica sí lo es. La
    precompilación guarda el estado de
    la compilación de una aplicación en un cierto punto
    y representa la relación que se establece entre el archivo
    fuente y la cabecera precompilada. Es posible crear más de
    un archivo de cabecera precompilado por archivo
    fuente.

    Una de las mejores aplicaciones de esta
    tecnología
    afecta al ciclo de desarrollo de una aplicación que tiene
    frecuentes cambios en el código pero 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ódigo fuente. Las cabeceras
    precompiladas también proporcionan un aumento en el tiempo
    de compilación para aplicaciones con cabeceras que constan
    de grandes porciones de código para un módulo dado,
    como suele suceder con los programas en C++.

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

    A diferencia de otros muchos compiladores de
    C++, el compilador de C++ de Microsoft no limita la
    precompilación a los archivos de cabecera. Como el proceso
    permite precompilar un programa hasta un punto especifico, puede
    incluso precompilar el código fuente. Esto es
    extremadamente significativo para los programas en C++ ya que
    contienen la mayoría de las definiciones de la
    función miembro en archivos cabecera. En general, la
    precompilación está reservada para aquellas partes
    del programa que son consideradas estables; se diseña para
    minimizar el tiempo necesario para compilar las partes del
    programa en el desarrollo.

    La biblioteca Microsoft Foundation
    Class (MFC)

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

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

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

    En efecto, la biblioteca MFC representa
    casi todas las prestaciones API de Windows e incluye un
    código sofisticado que simplifica el procesamiento de
    mensajes, diagnósticos y otros detalles que son partes
    normales de todas las aplicaciones Windows. Esta
    combinación lógica
    y el aumento 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 completamente las funciones en línea. Esto
    significa que las funciones de cualquier tipo o
    combinación de instrucciones pueden ser expandidas en
    línea. Muchos de los compiladores de
    C++ conocidos restringen la característica en línea a ciertos
    tipos de instrucciones o expresiones (por ejemplo, la
    opción en línea podría ser ignorada por
    cualquier función que contenga una instrucción
    switch, while o
    for). El compilador de Visual C++ permite controlar las rutinas
    más críticas en velocidad (incluyendo los
    constructores o funciones miembro de las clases muy pocas veces
    utilizadas) sin restringir su contenido. Esta opción se
    establece en el menú Project, seleccionando la
    opción Settings…, a continuación la carpeta C/C++
    y, finalmente, Optimizations en la lista
    Category.

    Opciones del
    compilador

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

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

    Generales

    En la ficha General se puede especificar
    la utilización o no de la biblioteca Microsoft Foundation
    Class. También se pueden indicar los directorios de
    salida para archivos compilados en C/C++ intermedios y
    finales.

    Debug
    (Depuración)

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

    Custom Build (Construcción
    personalizada)

    En la ficha Custom Build se pueden
    especificar herramientas personalizadas para utilizar en proyectos de
    desarrollo. Esto incluye herramientas para la ejecución
    del archivo resultante de la configuración del
    proyecto.

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

    General

    La categoría General permite
    definir el nivel de advertencias, especificar la
    información de depuración, establecer las
    optimizaciones del compilador indicar las definiciones del
    preprocesador y listar las opciones del
    proyecto.

    C++ Language (Lenguaje
    C++)

    La categoría C++ Language
    (Lenguaje C++)
    permite especificar el método de
    representación, establecer el manejo de excepciones, el
    tipo de información en tiempo de ejecución y los
    cambios en los desarrollos, así como listar 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
    los convenios de llamada, especificar la biblioteca de tiempo de
    ejecución, anotar la alineación de los miembros de
    la estructura y
    listar las opciones del proyecto.

    Customization
    (Personalización)

    La categoría Customization
    permite activar o desactivar los siguientes
    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 de desarrollo que permite, de forma sencilla,
    crear, abrir, visualiza editar, guardar, compilar y depurar todas
    las aplicaciones C y C++. Al tratarse de un componente decisivo
    de Microsoft Development Studio, el entorno de C/C++ opera como
    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 lenguajes de
    desarrollo radica en la facilidad de aprendizaje y uso
    que proporciona un conjunto compacto de herramientas y utilidades
    de desarrollo. ¡Por regla general, excepto para la sintaxis
    específica del lenguaje, una
    vez que se entienden la utilidades de un entorno (por ejemplo,
    Visual C++), automáticamente se tiene conocimiento
    de cómo utilizar las otras! La integración del lenguaje de
    Microsoft Development Studio, permite desarrollar y combinar
    fácilmente archivos fuentes de
    múltiples lenguajes en un único
    programa.

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

    Inicio del EID (Entorno integrado
    de desarrollo) de Visual C++

    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++, que aparece en el
    grupo
    Microsoft Visual C++. La Figura 2.1 muestra la pantalla inicial
    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 del EID (Entorno integrado de desarrollo)
    de Visual C++, dado que toda la documentación del
    compilador se encuentra en línea. La utilización de
    este recurso tan valioso es tan sencillo como colocar el cursor
    sobre la utilidad en cuestió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 sobre una construcción del lenguaje C/C++ y
    se pulsa la tecla F1, automáticamente la utilidad 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 amplia visión de cada una de las
    opciones del EID de Visual C++. No hay que desesperarse por el
    número de utilidades y opciones
    disponibles.

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

    Al aumentar la experiencia e
    incrementar en complejidad los requerimientos de una
    aplicación, gradualmente se ganará experiencia en
    el manejo de las posibilidades más sofisticadas de este
    potente entorno. Durante la lectura de
    este capítulo, se puede coger un lápiz y marcar las
    características del EID de Visual C++ que
    parezcan más interesantes. (cuando surja la necesidad de
    utilizar una de estas utilidades, fácilmente se puede
    volver a hacer referencia a esta sección para obtener la
    explicación sobre cómo utilizar la correspondiente
    opción.

    Funcionamiento de los
    menús

    Antes de comenzar a explicar cada una de
    las utilidades de Visual C++, se van a examinar algunas
    características comunes a todos los elementos de
    menú. Por ejemplo, existen dos formas de acceder a los
    elementos de un menú. La aproximación más
    habitual consiste en colocar el puntero del ratón sobre la
    opción deseada y pulsar el botón izquierdo del
    ratón. La segunda 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 la misma secuencia descrita
    anteriormente y, a menudo, existe un mecanismo adicional de
    seleccionarlos. Algunos elementos de menú se pueden
    activar directamente desde cualquier lugar del entorno integrado,
    utilizando sus combinaciones especificas de teclas abreviadas. Si
    un elemento de menú dispone de esta posibilidad, se
    muestra a la derecha del elemento en el menú, la
    combinación específica de teclas abreviadas para la
    opción determinada. Por ejemplo, la primera opción
    que aparece en el menú File (Archivo) es New (Nuevo)… Se
    puede seleccionar esta opción, de forma inmediata,
    pulsando simplemente CTRL-N, sin la necesidad de seleccionar
    primero el menú File (Archivo).

    A continuación, se muestran
    algunos comentarios adicionales que conciernen al funcionamiento
    de los menús: primero, si un elemento de menú
    aparece desactivado, el entorno integrado está advirtiendo
    sobre el hecho de que esa opción particular no está
    disponible actualmente. Esto significa que el entorno integrado
    ha detectado que falta algún prerequisito necesario para
    que 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 aparece
    vacía. La opción detecta que no se puede guardar
    algo que no existe e indica este hecho desactivando y colocando
    como no disponible la orden Save (Guardar).

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

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

    Obsérvense la utilidades tan
    interesantes del EID (Entorno integrado de desarrollo) que,
    normalmente, están disponibles a través de una
    selecció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 otra barra de
    herramientas aparezca acoplada o flotante. En modo
    acoplado, una barra de herramientas aparece fija a
    cualquiera de los cuatro bordes de la ventana de la
    aplicación. El tamaño de una barra de herramientas
    no se puede modificar cuando está
    acoplada.

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

    Para modificar una barra de herramientas
    acoplada en 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 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.

    Tabla 2.1. Códigos de formato de
    Page Setup (Configurar página)

    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órico es similar a
    la lista de archivos recientes, excepto que la lista de proyectos
    recientes 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 el elemento
    seleccionado.

    Exit
    (Salir)

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

    El menú Edit
    (Edicíón)

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

    Undo
    (Deshacer)

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

    Redo
    (Rehacer)

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

    Cut
    (Cortar)

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

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

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

    Copy
    (Copiar)

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

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

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

    Paste
    (Pegar)

    El elemento de menú Paste (Pegar)
    se utiliza para insertar los contenidos del Portapapeles en la
    posición actual del cursor El Portapapeles 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 la barra de herramientas.
    En la barra de herramientas, esta opción se corresponde
    con el icono que contiene una página y el Portapapeles. Se
    trata del sexto icono empezando por la izquierda en el
    sistema.

    Delete
    (Borrar)

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

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

    Select All (Seleccionar
    todo)

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

    Find…
    (Buscar..)

    El elemento de menú Find…
    (Buscar..) funciona de forma muy parecida 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 sensibles al contexto, no sensibles al contexto
    y de palabra completa. El cuadro de diálogo Find (Buscar)
    también permite establecer la dirección de búsqueda (hacia arriba
    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 de
    tratamiento de texto, es la opción Regular Expression
    (Expresión regular). La Tabla 2.2 muestra y describe los
    símbolos de patrones de búsqueda asociados con
    Regular Expression que se pueden utilizar en la ventana Find
    What: (Buscar qué:).

    Find in Files… (Buscar en
    archivos…)

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

    Tabla 2.2. Patrones de búsqueda
    de cadenas para Regular Expression

    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 la cadena.

    Ejemplo: +valor

    Busca: i_valor, f_valor,
    lng_valor

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

    Ejemplo: alguna_var_n);$

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

    [ ]Comienza una búsqueda de
    un conjunto de caracteres determinado.

    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..ZiO.
    .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 el cuadro de diálogo Replace
    (Reemplazar), que permite reemplazar texto. Simplemente se
    introduce la cadena a localizar, a continuación se escribe
    la cadena por la que se reemplaza y, finalmente, se seleccionan
    los diferentes criterios de coincidencia. La opciones de
    coincidencia incluyen sólo palabras completas,
    distinción entre mayúsculas y minúsculas, no
    distinción entre mayúsculas y minúsculas y
    Regular Expressions (Expresiones regulares) (véase la
    explicación anterior).

    Se debe tener cuidado cuando se
    selecciona la opción Replace ALL (Reemplazar todo), puesto
    que puede generar resultados peligrosos. Existen dos aspectos a
    tener en cuenta cuando se realiza una operación de
    reemplazamiento: 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ón específica dentro de
    la ventana de edición activa con el elemento de
    menú Go To… (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ódigo a la que
    se desea saltan El hecho de introducir un número de
    línea superior al número actual de líneas de
    código fuente disponibles, implica que la orden coloca el
    cursor al final del archivo de texto que aparece en la
    ventana.

    Bookmarks…
    (Marcadores…)

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

    ActiveX Control in HTML… (Control
    ActiveX en HTML) y HTML Layout…
    (Esquema HTML…)

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

    Advanced
    (Avanzado)

    Las opciones Advanced
    (Avanzado) permiten refinar el código fuente. Las opciones
    más útiles incluyen la eliminación de
    tabuladores en la selección, visualización de
    espacios en blanco y búsquedas
    incrementales.

    Breakpoints… (Puntos de
    ruptura…)

    La opción Breakpoints… (Puntos
    de ruptura…) permite especificar puntos de ruptura en
    posiciones específicas, en elementos de datos
    seleccionados o en mensajes.

    Líst Members (Miembros de la
    lista)

    Esta utilidad muestra una lista de
    variables o funciones miembro 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, incluyendo una lista de
    parámetros, de la función que aparece a la
    izquierda del cursor El parámetro en negrita indica el
    siguiente parámetro que se requiere cuando se escribe la
    función.

    Complete Word (Palabra
    completa)

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

    El menú View
    (Ver)

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

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

    Una forma sencilla de comenzar con la
    creación de scripts es utilizando una herramienta
    autorizada HTML como puede ser Microsoft ActiveX Control Pad. La
    herramienta Microsoft ActiveX Control Pad está disponible
    gratuitamente para descargarla desde la sección de
    herramientas autorizadas en Microsoft Site Builder Workshop, a la
    que se puede acceder a través de www.microsoft.com. Se
    puede utilizar la opción Script Wizard… (Asistente de
    Scripts. ..) para comenzar el diseño
    una VBScript (Script de Visual Basic) o
    JavaScript
    (Script de Java). Una vez
    que se activa el Script Wizard (Asistente de Scripts), primero se
    selecciona el Default Script Language (Lenguaje de
    Scripts por omisión) y, a continuación, se
    selecciona un evento (Select Event), 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ás fácil la realización
    de tareas repetitivas como pueden ser la creación de
    nuevas clases, la definición de descriptores de mensajes,
    sustitución de funciones virtuales de la MFC y la
    recolección de datos de controles en un cuadro de
    diálogo, una vista formulario o una vista de registros. Un
    aspecto muy importante es que ClassWizard (Asistente de clases)
    sólo funciona con aplicaciones que utilicen clases de la
    MFC a diferencia de ClassView y WizardBar, 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 el archivo de la base de datos de
    ClassView. Estos archivos tienen la extensión CLW. 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 hipertexto que 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 cuadro Current URL (URL actual)
    de la barra de herramientas lnfoVíewer

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

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

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

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

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

    Se puede observar que el proceso de
    desarrollar una aplicación multitarea, orientada a
    objetos, GUI (Interfaz gráfica de usuario), multimedia, para
    Internet no se trata de un proceso sencillo (es decir se tiene
    que realizar todo partiendo de cero). No obstante, los entornos
    de lenguajes de desarrollo de hoy en día generan, de forma
    automática, el código para la mayoría de
    estos objetivos.
    Este libro se ha diseñado para ofrecer al usuario un
    entendimiento completo de los Lenguajes C y C++ y poder trabajar
    en el entorno de desarrollo número uno 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 a manejar aquellas
    órdenes necesarias para crear, editar, guardar, compilar y
    depurar programas sencillos. En este momento, si no se ha
    aprendido todavía a manejarlos, puede resultar muy
    interesante utilizar un rotulador para marcar texto. Dado que el
    entorno integrado permite iniciar cada operación de muchas
    formas, es conveniente destacar el texto donde aparezca el
    método que
    se prefiera. 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 trabajar con el FID (Entorno integrado de
    desarrollo) de Visual C++ resulta sencillo. Si se está
    utilizando un ratón, se puede pulsar dos veces sobre el
    icono Visual C++, que aparece en el grupo de programas Microsoft
    Visual C++.

    Alternativamente, se puede acceder al
    sistema de menús de Windows 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 seleccionar las preferencias personales del
    usuario.) Se utiliza el método que
    se prefiera y, ahora se debe iniciar Microsoft Visual
    C++.

    Creación de un primer
    programa

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

    Este cuadro de diálogo se utiliza
    para seleccionar el tipo de archivo que se desea crear. Para este
    ejemplo, selecciónese la opción Win32 Console
    Application. Una vez que se la asigna al proyecto un nombre,
    Visual Development 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 Empty Project (Proyecto
    vacío) y se pulse el botón Finish (Finalizar). Para
    abrir una ventana de edición vacía, se pulsa sobre
    el icono Página (primer icono comenzando por el extremo
    izquierdo de la barra de herramientas Edit). Con el área
    de 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 respuesta del usuario */

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

    mostrar_elem(despl, continue,
    iarray);

    /* Mensaje de bienvenida y solicitud de
    respuesta por parte del usuario */

    Printf (nnBienvenido a esta
    demostración ¡");

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

    scanf ("%c" ,
    continue)

    /* Entrada por parte del usuario de un
    nuevo array de datos enteros */

    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 datos introducidos 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("nn%d",
    despl);

    printf ("nn%d",
    continue);

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

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

    }

    El programa se debe introducir tal y
    como aparece en el texto. Sí se está familiarizado
    con el lenguaje C, se
    observará que existen errores en el programa. No deben
    corregirse. Los errores se colocaron de forma intencionada para
    que el usuario aprenda a manejar varias utilidades del entorno
    integrado.

    Edición del código
    fuente

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

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

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

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

    Para permitir la edición de la
    máxima cantidad de contenido del espacio de trabajo, se
    pueden desactivar las barras de desplazamiento vertical y
    horizontal (véase Tools Options). Si se selecciona esta
    opción, no se puede utilizar el ratón para
    desplazarse horizontal y verticalmente por la ventana. 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, que desplaza el cursor al final del
    programa. ¿Está considerando todo con el
    rotulador?

    Quizás surja la duda acerca del
    por qué no se ha hecho mención a los movimientos
    horizontales de teclado equivalentes. La razón consiste en
    que el código escrito por la mayoría de los
    profesionales se ajusta a un monitor
    estándar con 80 columnas de anchura. Esto facilita
    la lectura 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 y el compilador El usuario puede
    pensar que escribe un código impecable, mientras que el
    compilador opina todo lo contrario. Si esta apreciación no
    es lo suficientemente dura, surge la opinión del enlazador
    sobre nuestro ingenio a la hora de realizar algoritmos. No
    obstante, el revés final a nuestro ego llega por parte del
    propio microprocesador
    que, después de filtrar el archivo ejecutable a
    través del compilador y enlazador, se ve saturado con
    nuestras instrucciones digitales.

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

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

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

    La Figura 3.3 muestra la ventana de
    edición que aparece justo antes de guardar el archivo.
    Después de guardar el archivo, el título que
    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/95 y Windows NT contienen muchos
    archivos. No obstante, para comenzar, los programas más
    sencillos tienen un único archivo, el archivo mamo de
    C/C++. Conforme se vaya adquiriendo una mayor experiencia en la
    programación, se comprobará que esta
    aproximación introductoria es
    ineficiente.

    A medida que se entienda mejor el
    lenguaje C/C++
    y el desarrollo de aplicaciones en Windows, se comenzará a
    dividir las soluciones en
    múltiples archivos C/ C++, lógicamente
    relacionados. A estos se les añadirán nuestros
    propios archivos de cabecera (los archivos de cabecera tienen
    como extensión .h). Cuando el lector alcance el final de
    este libro, será capaz de crear 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 único archivo, las siguientes secciones
    presentan los pasos necesarios para construir una
    aplicación en C/C++ constituida por muchos archivos para
    trabajar bajo entorno Windows.

    Utilización de los
    Workspaces

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

    Los archivos make son archivos de texto
    que siguen una sintaxis especial, detallando las dependencias
    entre los archivos. Dicho de otra forma, la sintaxis de los
    archivos make define los archivos que deben estar presentes y
    compilados antes de que el archivo destino se pueda utilizar en
    otra etapa del proceso de compilación o enlazado. Por
    tanto, debido a lo sofisticado de este proceso, ya no se
    considera como "compilación y enlazado". La nueva palabra
    que se utiliza para describir este paso es "generación"
    (building).

    Tradicionalmente, los archivos make se
    tenían que ejecutar desde la línea de
    órdenes mediante un programa de utilidad independiente
    denominado NMAKE.

    Microsoft ha perfeccionado este proceso
    completo en el compilador de Visual C++, incluyendo una nueva
    utilidad denominada utilidad Proyecto.

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

    Creación de un nuevo
    proyecto

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

    La primera información que
    requiere la utilidad Proyecto es el nombre del archivo de
    proyecto. El nombre del archivo de proyecto es importante, puesto
    que se trata de la etiqueta que se utilizará para
    identificar el archivo ejecutable final.

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

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

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

    La cuarta opción hace referencia
    a la plataforma destino del proyecto. Para la versión de
    32 bits del compilador de Visual C++, está activa la
    opción Win32. La Figura 3.4, mostrada anteriormente,
    presenta la información necesaria para un archivo de
    proyecto de ejemplo completo. Para aceptar esta
    informació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, la utilidad Proyecto permite añadir
    archivos fácilmente. La Figura 3.5 muestra el elemento 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 de
    FileView.

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

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

    Si este proyecto fuera un archivo de
    proyecto formado por muchos archivos, como podría ser un
    proyecto para el desarrollo de aplicaciones Windows, en este
    momento se debería continuar con la selección de
    los archivos necesarios el proyecto. Para el programa de ejemplo,
    sin embargo, sólo se realizará un archivo. En este
    punto, se está preparado para finalizar correctamente la
    definición del archivo de proyecto pulsando el
    botón OK.

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

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

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

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

    Debido a que un mantenimiento
    incorrecto del sistema puede generar errores en las
    configuraciones internas del reloj, lo más seguro es
    seleccionar 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 o pulsando
    INTRO cuando aparece esta orden resaltada.

    Depuración de
    programas

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

    Cada mensaje comienza con el nombre del
    archivo fuente, que para este ejemplo es
    C:ArchívosdeprogramaDevStudioMíProyectoErrorErron.c.
    Este nombre de archivo es importante, puesto que las aplicaciones
    típicas de Windows contienen muchos archivos
    fuente.

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

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

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

    Diferencias entre los mensajes de
    error y los de advertencia

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

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

    Se pueden eliminar la mayoría de
    los mensajes de advertencia anulando automáticamente las
    opciones por omisión del lenguaje. Esto se puede realizar
    colocando en primer plano aquellos operadores o funciones
    diseñados para ejecutar las operaciones que
    pueden generar efectos laterales. El ejemplo de 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 float
    a
    tipo double.

    El primer error
    inesperado

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

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

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

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

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

    En muchas ocasiones nos encontramos con
    la situación de intentar localizar rápidamente algo
    en el programa. Esto se podría realizar activando 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 de herramientas de la Figura
    3.9, se verá la palabra continue en el cuadro de
    lista Quick Find (Búsqueda
    rápida).

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

    Este enfoque es adecuado para localizar
    las primeras ocurrencias, pero en este caso resulta ineficiente
    puesto que se necesitan buscar 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 la opción Edit Replace…, mostrado en la
    Figura 3.10.

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

    En la Figura 3.10, se observa este
    hecho, colocando primero el cursor sobre la variable
    continue, que aparece resaltada en la figura anterior.
    Practíquese esta secuencia y obsérvese si la
    pantalla tiene un aspecto similar al de la Figura
    3.10.

    Para el programa de ejemplo, queremos
    que la variable que se denomina continue permanezca por
    razones de legibilidad, pero resulta necesario asignarle un
    nombre distinto al de la palabra reservada. En este momento, se
    necesita introducir manualmente la palabra continu en la
    lista Replace with: del cuadro de diálogo
    Replace.

    Téngase en cuenta que este cuadro
    de diálogo contiene la mayoría de las opciones de
    búsqueda y reemplazamíento de los programas de
    tratamiento de textos estándar, como pueden ser la
    posibilidad de encontrar sólo palabras 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 resultar sorprendente que C/C++ distinga entre
    mayúsculas y minúsculas. Por esta razón, dos
    variables denominadas TOTAL y total son tratadas de
    forma diferente.

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

    Ahora que se ha introducido la
    información apropiada en el cuadro de diálogo
    Replace, se está preparado para llevar a cabo la
    operación de reemplazamiento. Sin embargo, existe un
    problema. El programa contiene la instrucción de salida
    "n¿Desea contínue (S/N)?". Si se hubiera
    seleccionado la opción Replace All del cuadro de
    diálogo Replace, la instrucción de salida
    tendría un error de ortografía, puesto que una operación
    Replace ALL podría modificar la palabra "continue" en la
    salida por pantalla del 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 diferentes opciones de búsqueda. Find Next
    localiza la siguiente ocurrencia de la cadena buscada. Replace
    inserta la cadena que sustituye. La opción Replace All
    recorre el código sin interrupción, buscando y
    reemplazando el texto deseado.

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

    Abreviaturas para
    conmutación entre vistas

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

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

    warning c4013: 'Prinft'
    umdetined;…

    Ahora se debe pulsar INTRO.
    ¡Atención! El entorno integrado conmuta
    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 Figura
    3.12.

    Utilidad de los mensajes de error
    y de advertencia

    Cuando se aprende un lenguaje nuevo,
    realmente se encuentran dos curvas de aprendizaje
    principales. Primero, existe el momento en el que se aprende la
    sintaxis y los matices del nuevo lenguaje. Sin embargo, en
    segundo lugar, aparece la curva de aprendizaje
    más sutil que incluye la comprensión de esta nueva
    ayuda del entorno como son los mensajes de error y de
    advertencia. En otras palabras, el lector tiene que aprender la
    forma en que este nuevo compilador procesa el código
    fuente.

    La buena noticia es que el compilador de
    Visual C++ genera algunos de los mensajes más exactos que
    producen los entornos asociados a cualquier lenguaje. En el
    ejemplo el compilador detecta hábilmente los problemas
    debidos a una mala utilización de una palabra reservada
    del lenguaje en 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ón de la biblioteca que coincida con Printf( ) Con
    esta palabra resaltada en la ventana 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 olvidar guardar el
    archivo.

    Más trabajo con el
    Depurador

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

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

    Cuando se realiza la corrección,
    la misma línea en la que aparecí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 editar la línea colocando una comilla doble (it)
    después de abrir el paréntesis de la función
    printf( ), es decir después de printf(.

    Asegúrese de que la primera
    instrucción printf( ) coincide en su formato con la que
    aparece en la Figura 3.14. Ahora, se guarda el archivo y se
    intenta realizar otra operación de volver a generar todo.
    La Figura 3.14 muestra 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 el lenguaje C/C++ a diferencia del Pascal, un punto
    y coma se considera como un terminador 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 coma como terminador, y no una coma. Se debe
    modificar la coma que aparece después de la constante TAM
    por un punto y coma, guardar el archivo y ejecutar de nuevo la
    orden Rebuild All.

    ¿Se ha tenido éxito?
    Teniendo en cuenta la ventana de mensajes de salida, no
    deberían aparecer ni errores ni advertencias, y la orden
    Rebuild 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 la operación Build o Rebuild
    all, simplemente se pulsa sobre la orden Execute (Ejecutar) del
    menú Project. Si se realiza este proceso con el programa
    ejemplo, y se introduce S cuando indica si desea continuar, la
    pantalla debería mostrar lo siguiente:

    -85993460

    o

    -858993460

    -858993460

    -858993460

    -858993460

    -858993460

    ¡Bienvenido a esta
    demostración ¡

    ¿ Deseas continue (2/N) ?
    S

    La Figura 3.1 5 muestra lo que ocurre
    después de introducir S y pulsar INTRO.

    Utilización del Integrated
    Debugger (Depurador integrado)

    La salida del programa ejemplo comienza
    mostrando el contenido del array sin inicializar. A
    continuación, pregunta si se desea continuar. Una
    respuesta "S" (sí) indica lógicamente que ahora se
    desea completar el array con nuestros propios valores y, por
    último, vuelve a mostrar 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
    parte del usuario. Además, los contenidos del array no se
    han modificado, como se evidenció anteriormente por la
    salida duplicada.

    En otras palabras, aunque se tenga un
    programa que aparentemente está correcto desde el punto de
    vista sintáctico (no existen errores), no significa que la
    aplicación se ejecute de la forma esperada. Estos tipos de
    errores se denominan errores lógicos.
    Afortunadamente, el depurador integrado del EID de Visual C++
    tiene diferentes utilidades listas para 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 ejecutar un 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
    cualquier punto del programa.

    Con la utilización correcta de
    posibilidades se permite localizar rápidamente una
    línea de código errónea. Desafortunadamente,
    el depurador 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 de
    herramientas Debug (Depuración). Dos de los botones que
    más se utilizan, representan las opciones Step Into
    (quinto botón empezando por la izquierda en la barra de
    herramientas Debug) y Step Over (sexto botón). Ambas
    órdenes ejecutan el programa línea a
    línea.

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

    La única diferencia entre
    Step Into y Step Over se produce 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úa en la cabecera de la función y
    continua depurando el código que aparece dentro de la
    función. Si se selecciona Step Over en una llamada a una
    función, el depurador ejecuta la función asociada
    en sólo paso y, a continuación, sigue con la
    depuración en la siguiente instrucción que aparece
    tras la llamada a la función. Se debería utilizar
    esta orden siempre que se está depurando un programa que
    incorpore subrutinas probadas anteriormente.

    Utilizando cualquiera de las
    órdenes Step, ejecútese la orden tres veces. La
    Figura 3.17 muestra como aparece el programa ejemplo
    después de 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ón que
    contiene la primera llamada a la función
    mostrar_elem().

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

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

    El depurador integrado responde, de
    forma inmediata con el mensaje 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á
    familiarizado lo suficiente con el lenguaje C, para detectar el
    tipo de problema que aparece.

    Este problema está relacionado
    con la utilización incorrecta de la función
    scanf(). La función scanf() espera recibir la dirección de 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 una dirección. La
    solución pasa por colocar el operador de dirección
    (&) delante de la variable continu. Corrijase la
    instrucción de forma que tenga 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 de parada para el depurador integrado.
    Lógicamente, los puntos de ruptura le indican al depurador
    que todas las instrucciones anteriores al punto de ruptura
    están correctas por tanto, el depurador no debería
    gastar tiempo en ejecutar paso a paso estas
    instrucciones.

    La forma más sencilla de
    especificar un punto de ruptura es pulsar 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ón aparece el primero por la derecha en
    la barra de herramientas. La imagen que contiene el botón
    parece una mano indicando "parar".

    El botón Breakpoint se comporta
    como un conmutadon Si la línea donde está el cursor
    no contiene un punto de ruptura, la orden activa uno. Si la
    línea actual tiene especificado un punto de ruptura, la
    orden lo elimina. Se pueden establecer tantos puntos de ruptura
    como se necesiten repitiendo esta secuencia. La orden Go, cuando
    se selecciona, siempre ejecutará el programa desde la
    línea actual hasta el siguiente punto de
    ruptura.

    Para el programa ejemplo, debemos saber
    que todas los instrucciones 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 la nueva instrucción funciona adecuadamente.
    Por cuestiones de eficiencia en el
    proceso depuración, vamos a establecer un punto de ruptura
    en la línea 31, en la función
    scanf().

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

    Este menú activa el cuadro de
    diálogo Breakpoints (Puntos de 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úmero de 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ón scanf().) 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 los puntos de ruptura, se puede utilizar el
    elemento de menú Debug Go, como muestra la Figura
    3.21.

    Suponiendo que se ha especificado el
    punto de ruptura anteriormente descrito, actívese la orden
    la orden Go. (Puede seleccionar esta orden 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 la instrucción que
    contiene la llamada a la función scanf( ) y, a
    continuación se 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 los contenidos de las variables. Por
    ahora, estamos interesados en comprobar silos cambios de sintaxis
    realizados en la instrucción scanf( ) funcionan.
    Seleccione la opción Step Over cámbiese a la
    ventana de ejecución del programa, escriba una S
    mayúscula y pulse INTRO. (Se utiliza la opción Step
    Over para que el depurador 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 del archivo SCANF.C. Si se
    Cancela esto, se genera una descordinación y la ventana no
    estará preparada para aceptar una entrada,
    etc.).

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

    lntroducción a Quickwatch
    (Visualización rápida de
    contenidos)

    La orden Quickwatch… activa el cuadro
    diálogo Quickwatch, que permite visualizar y modificar de
    forma instantánea, los contenidos de una variable. La
    forma más rápida de colocar una variable en la
    ventana QuickWatch es 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álogo QuickWatch similar al de la Figura
    3.22.

    Ahora que sabe que los contenidos de
    continu son correctos, 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 de herramientas avanzadas que son de gran
    utilidad para el desarrollo del programa. Este capitulo examina
    la creación de mapas de bits, cursores e iconos desde
    dentro del Entorno de desarrollo integrado (IDE) de Visual C++ y
    revisa algunas utilidades 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++ y Windows, se observará que el
    compilador Visual C++ ayudará a localizar errores de
    sintaxis durante la operación de desarrollo
    (compilación y enlace). Los errores de sintaxis suelen ser
    errores sencillos de detectar debido a la ayuda que proporcionan
    las prestaciones de ayuda en línea. Sin embargo, el que
    una aplicación esté exenta de errores de sintaxis
    no significa que funcione como se espera.

    Es posible que se desee imprimir la hora
    en la pantalla, pero no resaltaría; o quizás se
    desee ver un archivo en un formato particular, teniéndolo
    en 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 la pantalla en blanco con la figura en
    blanco (difícil de ver). Incluso puede ser una
    cuestión de rendimiento: el programa se ejecuta
    correctamente cuando sólo se 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 de los errores simples de
    sintaxis. Las herramientas de desarrollo avanzadas son necesarias
    para corregir estos problemas.

    Este capitulo presenta las herramientas
    diseñadas para ayudar a localizar estos tipos de
    problemas. Se conocerá el objetivo de
    cada una de las herramientas y cómo utilizarlas. Conforme
    se avance posteriormente con los ejemplos de programación,
    se encontrará una mayor utilidad en estas
    herramientas.

    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 realizar con el
    IDE de Visual C++ de Microsoft. El IDE de Visual C++ no es
    sólo un compilador 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 Visual C++ para dibujar un mapa de bits. Las
    demás figuras gráficas, como iconos y cursores se
    crean de forma similar

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

    Por ejemplo, un mapa de bits
    podría constar de cuatro definiciones (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 mapa de bits, simplemente se hace
    referencia por su nombre; Windows selecciona, de forma
    automática, la imagen del icono que sea más
    adecuada para el dispositivo actual.

    La Figura 4.1 muestra la ventana inicial
    del IDE de Visual C++. 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 se pretende es crear un
    mapa de bits, por tanto se debe seleccionar el recurso Bitmap
    (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 de Visual C++ es tan sencillo como
    crear un dibujo con el
    Paintbrush de Windows. En primer lugar, el editor de recursos de
    C++ presenta una rejilla del mapa de bits vacía y la barra
    de herramientas Drawing Tools (Herramientas de dibujo).

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

    Para establecer las propiedades de los
    recursos, se pulsa ALT-INTRO. Este paso muestra el cuadro de
    diálogo con las propiedades de un recurso concreto. La
    figura 4.4 muestra el cuadro de dialogo de
    propiedades del mapa de bits, con detalles sobre la anchura,
    altura, color, nombre del del archivo y almacenamiento
    comprimido.

    Diseño de cuadros de
    diálogo

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

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

    La caja de herramientas Objects permite
    colocar una gran cantidad 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 incluir
    el 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 de opción), Combo box (Botón de
    órdenes), List box (Cuadro de lista), Horizontal scroll
    bar (Barra de desplazamiento horizontal), Vertical scroll bar
    (Barra de desplazamiento vertical), Spim (Incremento), Progress
    (Avance), Slider (Deslizador), Hotkey (Tecla abreviada), List
    Control (Control de lista), Tree Control (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 Extended Combo box (Cuadro de
    combinación extendido).

    La Figura 4.5, mostrada anteriormente,
    muestra el objeto etiqueta del nombre de la
    compañía seleccionada. El cuadro de diálogo
    Properties (Propiedades) aparece en primer plano pulsando dos
    veces con el ratón en el objeto etiqueta. Esta es una
    buena alternativa para volver a la ventana principal 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 icono fundamentalmente en la capacidad para contener un
    punto de selección. Un punto de selección del
    cursor representa la parte de la imagen que registra las
    coordenadas de pantalla del cursor.

    La creación de un cursor implica
    los mismos pasos iniciales utilizados para crear mapas de bits y
    cuadros de diálogo. Este proceso se inicia seleccionando
    la opción Resource del menú Insert y escogiendo el
    recurso cursor. La Figura 4.6 muestra un diseño
    completo de un cursor semejante al cursor UP.

    El punto de selección de un
    cursor se establece pulsando con el ratón en el
    botón punto de selección situado a la derecha de la
    etiqueta Hotspot: de la barra de herramientas Design. Una vez que
    se haya pulsado con el ratón en el botón,
    simplemente se debe mover el puntero del ratón sobre el
    diseñ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 interfaz
    gráfica sencilla de utilizar que permite acceder a cientos
    de páginas de la revista
    Microsoft y a artículos de libros. La
    Figura 4.7 muestra la ventana inicial de la Documentación
    en línea (la ventana podría aparecer con un formato
    diferente, dependiendo de la última actualización
    suministrada con el compilador).

    Obsérvese que cada entrada tiene
    un icono con un libro cerrado seguido por el título del
    libro. Seria conveniente dedicar un momento al estudio de la
    figura anterior, pensando en los libros que
    puedan resultar útiles en un futuro próximo. Para
    que la búsqueda de un tema sea eficiente, mediante
    palabras clave o temas de C/ C++, es necesario tener conocimiento
    del tipo de informació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 veces con el ratón sobre el
    título del libro en el que está interesado. La
    Figura 4.8 muestra lo que sucede en la ventana de
    Documentación en línea cuando se pulsa dos veces
    con el ratón sobre el título del libro
    What’s New/ What's New For Visual C++ Version 6.0
    (Novedades / Novedades de la versión 6.0 de Visual
    C++).

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

    Obsérvese que el icono del
    subtítulo cambia a un libro abierto. Los subtítulos
    que aparecen por debajo son todos 105 nombres de las
    páginas o capítulos disponibles. En este momento,
    una vez que se haya encontrado una página o
    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 inicia pulsando 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ándar para búsquedas en Windows, como se muestra
    en la Figura 4.10. Esta figura muestra un cuadro de
    diálogo con las opciones necesarias para iniciar un
    búsqueda sobre los Requerimientos del sistema (System
    Requirements) de Visual C++.

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

    Impresión de temas de
    ayuda

    Aunque es cierto que la
    Documentación en Línea y sus vistas asociadas
    facilitan las búsquedas, también es cierto que esta
    utilidad puede cansar la vista. Además, ¿qué
    sucede si se desea tener una copia de la documentació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 impresa que pasarse gran cantidad de horas pegado
    al monitor de la computadora.

    La Documentación en línea
    utiliza un método
    realmente sencillo 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 esta orden.

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

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

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

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

    Depurací6n y
    prueba

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

    Spy++

    Spy++ es una de las herramientas
    más dinámicas de Visual C/C++ de Microsoft. Esta
    utilidad permite 'espiar" una o todas las aplicaciones de Windows
    que se encuentren cargadas en ese momento. Esta opción de
    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, el estilo 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án enviando a través del
    entorno. Hay nueve cuadros de verificación que permiten
    predefinir 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 o asincrono y enviar a una ventana de
    Spy++, a un archivo o al puerto COM1 para una 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 la
    ventana.

    Después de haber seleccionado los
    tipos de ventanas que se desean visualizar, se utiliza el
    menú Window (Ventana) para decidir silos mensajes 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 Process Viewer (Visor de procesos). El cuadro de
    diálogo Process Viewer permite establecer y visualizar
    rápidamente todas las opciones necesarias para hacer un
    seguimiento de los procesos actuales, los elementos de proceso y
    el intervalo temporal del procesador.

    Para iniciar Process Viewer, simplemente
    se pulsa dos veces con el raton sobre el icono PVieb en el grupo
    Visual C++. Process Viewer puede ayudar 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 estado de
    los procesos que se están ejecutando en el sistema, se
    pueden detener los procesos y potencialmente interrumpir el
    sistema completa Se debe asegurar de que 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. Todas las
    opciones de WinDiff funcionan de forma similar a las
    órdenes que se encuentran en el File Manager (Administrador de
    archivos).

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

     

     

    Autor:

    Vivas Henry

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter