Inicio Reflexiones Guitarra Engineering Programación Win32

Introducción
Capítulo 1, por Ricardo González Garza

1.1 Antes de empezar...

Quizás se encuentre leyendo este tutorial y aún se pregunte de qué le servirá aprender a programar en Windows habiendo tantos sistemas y lenguajes hoy en día. Cada caso es diferente, y la respuesta realmente depende de las necesidades del usuario y del programador. Escribir un programa exitoso está relacionado con la portabilidad, compatibilidad, su fácil manejo, etcétera. Algunas ventajas de programar aplicaciones para Windows son:

  • No requiere capacitación adicional a usuarios. Windows es el sistema operativo más utilizado en el mundo. Quiere decir que los usuarios están familiarizados con este sistema o fácilmente pueden encontrar soporte a su alrededor (oficina, Internet, otros).
  • Acceso a librerías para programar con la misma interfaz estilo Windows. No tendrá que programar de cero menús, ventanas, controles, etc.
  • Compatibilidad entre diferentes versiones de sistemas Windows (con pequeñas excepciones). Sus programas podrán ejecutarse en cualquier computadora con Windows similar. Si el sistema operativo Windows se actualiza, su programa podrá correr en esta nueva versión.
  • La gran mayoría de los drivers se encuentran disponibles para Windows. No se preocupe por el modelo de tarjeta de video, tipo de procesador de la máquina, etc. de esto se encarga Windows.
  • Librerías y documentación actualizadas y disponible para el programador

No quisiera cerrarme a la idea de que Windows es el mejor de los mejores, ni mucho menos pretendo que piense de esa manera. Desde ahora le digo que no todo es bueno en Windows, empezando por sus costosas licencias de uso, pero usted como programador deberá documentarse lo suficiente para tomar las mejores decisiones en sus proyectos.

Es importante señalar que existe una cantidad considerable de personas, incluso expertos, que no guardan una buena imagen de este sistema, ¡pero ojo! tenga en cuenta que esa opinión va de acuerdo a los usos y necesidades de esas personas.

En lo personal, Windows ha sabido satisfacer la mayoría de mis necesidades. Si sigue interesado y con un mundo por delante, ¡bienvenido a la programación Windows!

1.2 Un poco de historia de la interfaz de usuario

En sus inicios, las computadoras eran unas máquinas tan complejas que solo personas especializadas en electrónica podían manejarlas. En aquel entonces, los administradores de un sistema tenían que pasar por largas sesiones de entrenamiento para comprender el funcionamiento de la máquina, además de involucrarse en la agotadora tarea de modificar o darle mantenimiento a esos grandes tableros llenos de cables, enchufes y botones.

Con el paso del tiempo, los programadores se dieron cuenta de que era necesario crear un medio de comunciación amigable entre el usuario y el hardware para reducir costos de entrenamiento y facilitar su uso; así nació el concepto de sistema operativo. Poco a poco, se fue acortando esa gran brecha que existía entre los hombres y los ordenadores, a tal grado que en la actualidad es muy común que cualquier tipo de persona interactúe con la computadora.

Originalmente los sistemas operativos esperaban que el usuario aprendiera comandos para manipularlo (¿ha usado MS-DOS o Linux en modo consola?), pero a pesar de que los comandos facilitan el uso de la computadora, aún sigue existiendo una brecha entre el usuario y la computadora. Para expandir el mercado en el mundo, fue necesario hacer las cosas todavía más fáciles... claro, pensando en la gente común que no tiene tiempo para aprender detalles, y se crea otro nuevo concepto: interfase gráfica del usuario (GUI).

La interfase gráfica trae consigo la idea de facilidad de uso y significó la clave del éxito de los éxitos de Microsoft. Cabe aclarar que no fue la primera empresa en implementar una interfase gráfica, pero de alguna manera ha sabido sobresalir sobre sus competidores. Ahora lo podemos ver reflejado, ¿Hardware nuevo? te lo detecto automáticamente, ¿Internet? por aquí, ¿Ejecutar un programa? clic en menú inicio... sí, así de sencillo.

Y como programadores debemos aprender esa lección. Para que nuestro producto sea atractivo a los usuarios, debe ser fácil de utilizar, y Windows nos ayuda a lograrlo. Windows pone al alcance del programador la posibilidad de crear ventanas, darles color, añadir menús, etc.

A partir de este momento hablaremos únicamente del sistema operativo Windows, sin lugar a dudas, uno de los más populares y extendidos por todo el mundo. Existe una ventaja que no podemos ignorar: desarrollar una aplicación bajo Windows es desarrollar una aplicación al alcance de un mayor número de usuarios que tienen el sistema instalado y están familiarizados con su interfase.

1.3 Lo que aprenderás en este curso

Windows proporciona funciones a los programadores para realizar tareas comunes. Son importantes porque ayudan a los programadores a despreocuparse por el diseño de botones, cuadros de texto, menús, listados y aseguran que nuestra aplicación funcione con cualquier tipo de hardware sin importar el tipo de tarjeta gráfica, impresora, disco duro, etc. A este grupo de funciones se les conoce como API y se distribuyen junto con Windows. API: Application Programming Interface (interfaz de programación para aplicaciones).

Este curso pretende ayudar a todas aquellas personas que deseen comenzar a programar en Windows empleando directamente las funciones API. No es un camino fácil, más bien, es largo y empedrado, pero que conduce a la comprensión de las tantas cosas que ocultan Windows y sus intermediarios (MFC, OWL o Visual Basic, Delphi).

En su mayoría, el uso de estas funciones es un requisito para cualquier tipo aplicación de Windows. Por lo tanto, independientemente del lenguaje de programación utilizado, todo lo que aquí se explica es aplicable en códigos de C/C++, Java, Visual Basic y Ensamblador (lenguajes que cuentan con un compilador que soporta la "codificación Windows").

Opté por diseñar este curso porque he vivido las dificultades para entrar al mundo de la programación en Windows utilizando la API. La primera vez que intenté realizar una aplicación Windows en C++ me asusté tanto que no volví a intentarlo hasta dentro de dos años. En ese periodo de tiempo, tuve que conformarme programando en Visual Basic aunque los límites y la necesidad me orillaron a emplear la API, así que me armé de valor y fui aprendiendo "a golpes".

Ahora escribo este tutorial que es una guía paso a paso para introducirle en la programación a Windows por medio de la API. Espero que con este texto tome confianza y se acostumbre a saltar los obstáculos que presenta el manejo de la API cuando se tienen los primeros acercamientos. Deseo recopilar todo ese montón de ideas que necesita saber y mostrárselas de manera ordenada, combinando la teoría con la práctica, y empezando con lo más simple hasta alcanzar niveles limitados por mi conocimiento... solo necesito ánimo y mucho tiempo de dedicación para escribirlo.

Hay ciertas funciones de la API que no son compatibles o que inclusive no existen entre las diferentes versiones de Windows (las más conocidas Win3.x, Win95/98, WinNT, WinXP). Como mi intención es hablar de la programación en Windows en general, no tocaré funciones especiales y en caso de que se requiera, explicaré solo las diferencias relevantes. No encontrará información sobre Win3.x y versiones anteriores que considero obsoletas.

1.4 Lenguaje de programación utilizado

En este curso, se usará el lenguaje C++ y el entorno de desarrollo oficial será Dev-C++ de BloodShed (el cual es un compilador público y gratuito que puede descargar de Internet en la siguiente dirección http://www.bloodshed.net/). Es necesario que tenga experiencia programando en C++, aunque no en la programación Windows.

Independientemente de donde trabajemos (Dev-C++, Visual C++.NET, Borland C++), todo el código aquí mostrado no deberá mostrar problemas para compilarse porque vamos a utilizar las librerías estándar. Cabe mencionar que no todos los compiladores están preparados para la codificación tipo Windows (y no de consola) dado que los ejecutables en Windows se ensamblan diferente.

Aclaro que C++ no es el único lenguaje de programación que permite crear ejecutables que trabajan bajo Windows. Existen otros como Visual Basic, Fox Pro, Delphi... ¿Cuál es el mejor de todos? Esa pregunta es muy frecuente. Todo depende de lo que quieras llegar a hacer y del tiempo que dispongas para ello... es un tema muy extenso que por ahora no voy a profundizar.

Sin embargo, todos los ejemplos e indicaciones del presente curso se realizarán en el lenguaje C++. No es un lenguaje fácil de dominar a comparación de Visual Basic u otros. Por lo que, si nunca ha programado y le es difícil encontrar a alguien que le oriente a elegir un lenguaje, debo decirle que Visual Basic es un lenguaje fácil de aprender con el que podrá realizar aplicaciones para Windows muy completas y en muy poco tiempo (digamos que es como la ruta fácil, pero igual es muy válida). Si ese es su caso, le aconsejo abandonar el curso.

1.5 ¿Por qué utilizar el lenguaje C++ para programar en Windows?

Habrá quienes tengan experiencia utilizando el lenguaje C++ y lo consideren como viejo y aburrido. Tal vez esto se deba a que una gran mayoría de los cursos de introducción a este lenguaje se basen en aplicaciones de consola (aquellas aplicaciones de pantalla negra y letras blancas) y que nuestras creaciones por su falta de diseño y la dificultad de uso asusten a cualquiera.

Existen compiladores de C++ para diferentes sistemas operativos, lo cual representa una ventaja en cuestión de portabilidad. Es posible compilar nuestro código en diferentes plataformas, si se separa el código operativo del código de interfaz gráfica. Así, si se desea compilar para los sistemas de Apple o Linux, simplemente se tendrá que modificar el código relacionado con la interfase gráfica. Esto reduce el tiempo de programación para pasar el código de un sistema a otro. En lenguajes de programación como Visual Basic esto resulta imposible ya que no existen compiladores para código de Visual Basic en otros sistemas diferentes de Windows.

En realidad, el lenguaje C++ es muy versátil. Dadas sus características, se han desarrollado compiladores que soportan la codificación de los ejecutables de Windows y así es posible aprovechar todas sus bondades que han hecho que sea uno de los lenguajes más respetados y utilizados por los expertos. Por ejemplo, el sistema operativo Windows, incluyendo la API y otras aplicaciones Microsoft, en su mayoría están escritos en C y C++. La lógica nos indica que si la empresa que encabeza el diseño del software en todo el mundo utiliza el lenguaje C/C++ es porque éste proporciona toda la potencia que se requiere al momento de realizar un programa.



comentarios@rickygzz.com.mx