Home » Visual C++ 6

Visual C++ 6

Curso de iniciación

Todo lo necesario para desarrollar proyectos utilizando la herramienta de programación más poderosa de Microsoft: Visual C++6. Todo está aquí:

 

  • Diseño y programación de aplicaciones con Visual C++6.
  • El entorno IDE y el uso de los asistentes de Visual C++
  • La biblioteca de clases MFC
  • Arquitectura documento/vista
  • Uso de controles ActiveX.
  • Uso del depurador

 

Visual C++ 6 Curso de iniciación

 

El conocimiento de Visual C++ abre las puertas a un dominio completo del entorno de programación Windows. Y esto se debe tener siempre presente como aliciente al estudio, porque Visual C++ abarca una gran cantidad de temas: lenguaje C++, programación orientada a objetos, biblioteca de clases, tecnología de componentes, etc. y ninguno de los temas se puede considerar simple. El aprendizaje es realmente duro, pero se puede  estar seguro de que el esfuerzo vale la pena.

El objetivo de este libro es enseñar al lector las funcionalidades esenciales que Microsoft ha incluido dentro de Visual C++ 6, la herramienta de programación más poderosa del entorno Windows 95/98 y NT. Las aplicaciones más conocidas a nivel mundial, Word y Excel, han sido desarrolladas por medio de Visual C++. El entorno de desarrollo integrado de Visual C++ es el resultado del intento de Microsoft por acercar a los desarrolladores la potencia del lenguaje C++ aprovechando todas las facilidades que otorgan los entornos visuales. Paralelamente al desarrollo de nuevas tecnologías que permiten la implementación de aplicaciones en redes o para Internet, Microsoft ha ido incorporando a Visual C++ nuevas herramientas o mejorando las ya existentes para simplificar lo más posible la programación en sistemas Windows.

Las novedades en Visual C++ 6

A pesar del escaso período de tiempo entre la aparición de Visual C++ 6 y la de su versión predecesora, Visual C++ 5, Microsoft ha incorporado muchas nuevas funcionalidades y mejoras. A modo de resumen se pueden citar las siguientes:

  • Mejoras en el soporte del compilador: El compilador es más rápido y realiza nuevas tareas de detección de errores.
  • Mejoras en el depurador: Con la opción Edit and Continue se pueden realizar ciertos cambios en el código fuente durante la depuración del programa sin necesidad de reconstruir la aplicación. Es quizá una de las mejoras más importantes de esta nueva versión de Visual C++. Esta funcionalidad ahorra mucho tiempo de compilaciones y construcciones durante la depuración.
  • * Mejoras en la biblioteca de clases de Microsoft (MFC): Se han mejorado y añadido nuevas clases. Por ejemplo, ahora se puede gestionar una clase para HTML dinámico y se incluye soporte para los nuevos controles de Internet Explorer 4.0.
  • Mejoras en el editor de Visual Studio: Se incorpora el sistema  automático de terminación de codificación, conocido como IntelliSense. Este sistema pone a nuestra disposición las bibliotecas MFC, Win32 y ATL, mostrándonos los miembros de las clases, los prototipos de las funciones, las declaraciones, etc. mientras estamos escribiendo el código.
  • Mejoras en los asistentes y nuevos asistentes: Se han incluido nuevos pasos y opciones en algunos asistentes que permiten generar código más específico y adaptado a nuestras necesidades, por ejemplo, se contempla el origen de datos OLE DB en AppWizard . También se han incorporado nuevos asistentes para nuevos tipos de proyectos y para ADO (ActiveX Data Objects).
  • Nuevas herramientas: Component Manager y HTML Help Workshop para todas las versiones de Visual C++; Visual Studio Analyzer y Visual Modeler, sólo para la versión para empresas. También se han mejorado herramientas ya conocidas: InstallShield y Test Container.
  • Windows NT 4.0 Option Pack: Este paquete sólo está disponible en la versión para empresas e incluye un conjunto de servicios para el desarrollo de aplicaciones de red: Certificate Server, FrontPage Server Extensions, Index Server, Internet Connection Services for RAS, Internet Information Server (IIS), Mail and News Services, Microsoft Data Access Components, Microsoft Management Console (MMC), Microsoft Message Queue Server (MSMQ), Microsoft Transaction Server (MTS), Site Server, SNA Server y Windows Scripting Host.
  • Mejoras en la integración de las distintas herramientas visuales de Microsoft.
  • Mejoras en el sistema de ayuda en pantalla de la biblioteca MSDN.

Requerimientos para aprovechar la lectura del libro

Se presupone que el lector cuenta con un ordenador con sistema operativo Windows 95/98 o Windows NT (3.51 o superior) y que ya ha instalado Visual C++ 6.

Si bien para el desarrollo de este libro se ha utilizado Visual C++ versión para empresas en un ordenador Windows 98, también puede servir cualquiera de las otras versiones de Visual C++ (estándar o profesional) ya que los temas desarrollados en el libro no requieren las herramientas que proporciona la versión más completa.

Cabe señalar que Microsoft sigue sin suministrar la versión traducida al español para Visual C++, por lo cual todas las pantallas que se producen a lo largo del libro pertenecen a la versión en inglés de Visual C++. No obstante, como el paquete instalado es Visual Studio en español, en donde todos los productos están traducidos, salvo nuestro Visual C++, se verán algunos mensajes o ayudas en español. Un buen ejemplo del uso de la tecnología de componentes.

Nota: Se omite la explicación sobre cómo instalar Visual C++ ya que el proceso está automatizado y no da lugar a dudas.

¿Por qué surge Visual C++?

La tecnología informática evoluciona a un ritmo difícil de comparar con otras tecnologías. Esa evolución también incluye el modo de la construcción del software. Hace treinta años se implantó la programación estructurada, una técnica adecuada a las necesidades de una época dominada por las técnicas personales, la indisciplina y el caos en los centros de cómputos.  Pascal y C fueron los lenguajes que acompañaron al desarrollo de la programación estructurada de la década del setenta. C, desarrollado por Dennis Ritchie en Bell Laboratories,  se destacó inmediatamente por sus muchas virtudes: código compacto y rápido, tan adecuado para implementar rutinas del sistema como para desarrollar aplicaciones. Hasta la aparición del lenguaje C, el software para el control eficiente del hardware debía ser desarrollado por el lenguaje ensamblador particular de cada procesador.  Obviamente, si se quería reutilizar un programa para el control de hardware en otro sistema debía ser vuelto a codificar utilizando el ensamblador correspondiente.

Sin duda, la programación estructurada y las técnicas "de arriba hacia abajo" (top-down) prestaron (y prestan) un gran servicio para los desarrolladores de software. Los proyectos, acompañando a las crecientes posibilidades del hardware, y a veces adelantándose a ellas, se han ido haciendo cada vez más grandes e integrales.  El nuevo enfoque de la programación orientada a objetos es una de las respuestas a las necesidades de los sistemas a gran escala. La programación de procedimientos pone su énfasis en el problema, busca el procedimiento para resolver un problema específico. En contrapartida,  la programación orientada a objetos  pone su énfasis en los datos: el tratamiento de los datos se corresponde con la resolución del problema.

Un objeto es una estructura de datos construida de acuerdo a  la especificación de una clase.  Una clase es la representación de algo con lo que trata un programa.  Por ejemplo, un programa de dibujo trata con distintos tipos de figuras (rectángulos, círculos, líneas, etc.). La clase es la descripción de este tipo de objetos, con sus propiedades (que definen su color, su tamaño, etc.) y sus métodos (que definen lo que se puede hacer con la figura: hacerla girar, moverla, redimensionarla, etc.). Cuando se diseña un programa se empieza por estos objetos elementales. El proceso de diseñar a partir de estos elementos de bajo nivel y de construir la aplicación  desde su nivel inferior a su nivel superior se conoce con el nombre de programación "de abajo hacia arriba" (bottom-up). Pero la implementación de clases requería un lenguaje de programación verdaderamente orientado a objetos.

A principios de la década del 80, también en Bell Laboratories, Bjarne Stroustrup desarrolló los primeros lineamientos del lenguaje  y diseñó los criterios y las funcionalidades  principales de C++. Actualmente, también es parte responsable de su evolución al formar parte del comité que determina el estándar del lenguaje.

C++ no reniega que ha bebido de las fuentes de varios lenguajes. Además de la influencia de C, reconocida en el propio nombre del lenguaje, también ha tomado elementos de SMALLTALK, ADA, BCPL y de Algol68. De Simula67 ha tomado el concepto de clases.

Las primeras versiones del lenguaje, que  se dominaba "C con clases", se desarrollaron con el objetivo de escribir código para simulaciones conducidas por eventos, las que se podrían haber escrito con el propio Simula67 si no hubiese sido por sus problemas en el rendimiento. Estas primeras versiones carecían de muchas de las características actuales del lenguaje: no era posible el uso de la sobrecarga, las funciones virtuales, las plantillas, la gestión de errores era deficiente y las referencias estaban severamente limitadas. Stroustrup le agregó las plantillas y la programación genérica sólo  después de que el lenguaje tuviera una buena aceptación y reconocimiento.

Hoy en día, C++ es utilizado por cientos de miles de programadores en casi todo el espectro de las aplicaciones informáticas. Las primeras aplicaciones de C++ estaban fuertemente orientadas hacia la programación de sistemas. Los principales sistemas operativos tienen partes claves codificadas en C++. La mayoría de los controladores de dispositivos están escritos en C++. Las aplicaciones comerciales suelen apoyarse en lenguajes de programación rápida (Visual Basic, PowerBuilder, etc.) pero cuando tienen que resolver secciones críticas del código, en donde el rendimiento es fundamental, apelan a C++ como una de las herramientas preferidas.  Esas secciones críticas no suelen ser las más largas de la aplicación, pero sí son claves para la funcionalidad de la aplicación.

La gran fortaleza del lenguaje es su capacidad para desempeñarse efectivamente en todas las áreas de las aplicaciones. Lo habitual es que una aplicación sea una suma de componentes especializados: LAN, WAN, interfaz de usuario, gestión de gráficos, gestión de base de datos, cálculo, etc. C++ no se siente limitado en ninguna de las partes de una aplicación. Hasta el punto que se puede afirmar: si no se puede hacer con C++, lo mejor será replantear nuevamente el problema. Parte de esta versatilidad del lenguaje es su capacidad para coexistir con fragmentos de código escritos en otros lenguajes.

A pesar de no ser un lenguaje simple, se utiliza ampliamente en la enseñanza y en la investigación. Es el lenguaje por excelencia de los estudiantes de las distintas carreras técnicas. ¿Por qué? Porque es lo bastante flexible para adaptarse a los distintos niveles de exigencia. Porque es un lenguaje conceptualmente claro que no impone límites.

La conjunción del compilador y enlazador C/C++, el entorno de desarrollo integrado IDE y la biblioteca de clases MFC conforma lo que se conoce como Visual C++. Estos tres componentes han ido cambiando con el paso de las distintas versiones; lo que ahora, en la versión 6.0 de Visual C++, llamamos IDE de Visual Studio, en la versión 1 de Visual C++  se empezó denominando Visual Workbench. Pero ya desde su primera versión mostraba su capacidad para facilitar el desarrollo de aplicaciones por medio de asistentes y para intentar integrar el entorno de desarrollo. También ha evolucionado mucho la biblioteca de clases MFC, aunque nunca ha cambiado su denominación, desde su primera versión 1 que aún ni siquiera brindaba soportaba a la tecnología OLE. Pero lo cierto es que Microsoft ha ido acercándose cada vez más a su objetivo: crear un entorno de programación tremendamente poderoso que no sea dominio de unos pocos expertos.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.