De Clipper a (x) Harbour con XEditEste artículo me lo han pedido muchísimos programadores de Clipper, y hasta ahora había tenido tiempo de escribirlo con calma, de hecho me ha llevado poco mas de una semana. Lo que explicaré a continuación es la forma fácil y rápida de migrar tus programas CAClipper a (x)Harbour, con las menores molestias posibles, utilizando una herramienta muy interesante : XEDIT. XEdit es una herramienta hecha en Xailer, de hecho, XEdit es un buen ejemplo de lo que se puede lograr programando con Xailer, pero además es un prototipo de lo que después se convertiría en el IDE de Xailer. El Equipo de Xailer ha decidido mejorarlo y dejarlo como un producto individual independiente de Xailer para ayudar a los programadores novatos en (x)Harbour en los procesos de compilación y enlazado de sus aplicaciones, tanto para modo consola, como para Windows hechas con FiveWin, así es..... puedes usar XEdit para compilar y enlazar tus programas FiveWin. ;-) Si trabajas con XEdit para migrar tus programas de Clipper a (x)Harbour, posteriormente la migración de tus programas a Windows con Xailer te será mucho mas fácil, ya que XEdit comparte muchas de las características de su hermano mayor: El IDE de Xailer, como son: El Gestor de Proyectos, El Editor de código fuente, El Depurador visual (solo para aplicaciones modo Consola, no para aplicaciones Windows, la depuración para aplicaciones Windows solo está disponible en Xailer), El Explorador de DBFs (DBU) y El Editor de SQLite., estos componentes no los voy a explicar en este artículo, pero haz click sobre los enlaces anteriores y obtendrás una descripción detallada de cada uno. Antes de comenzar debo aclarar que todo lo aquí expuesto está basado en XEdit 2.0, que el Equipo de Xailer me ha facilitado para su evaluación, esta versión esta disponible como un BETA, más adelante encontrarás información sobre como obtenerlo. Bien comencemos. Los que ya llevamos una temporada trabajando con (x)Harobur sabemos que si bien el compilador es poderoso y versátil, no es nada fácil el proceso de compilación y enlazado de los programas, sobre todo porque tenemos por medio un compilador de C, del cual poco o nada sabemos, y es en este punto es donde el proceso de compilación y enlazado del EXE final se vuelve terrible. Recordemos como hacíamos un programa EXE en Clipper: archivo.prg -> archivo.obj -> archivo.exe Escribimos nuestro código fuente en archivos .PRG, luego con el compilador Clipper compilamos esos archivos .PRG y obtenemos archivos .OBJ, posteriormente tomamos esos archivos .OBJ, y por medio de un enlazador como RTLINK, BLINKER, EXOSPACE etc, uníamos los archivos .OBJ con los archivos de librerías de Clipper pero el resultado de la compilación NO SON ARCHIVOS . etc. dbfntx. Otra ventaja adicional. vamos que si eres experto en "C" y editas el contenido de un archivo resultado de la compilación con Harbour.c ->archivo..EXE final. así que te puedes olvidar de Blinker. y aquí es donde empieza la fiesta porque actualmente (x)Harbour es compatible con varios compiladores de "C" como el Microsoft Visual C++ desde la versión 6 hasta la versión 8.OBJ para generar el archivo .OBJ hay que "linkearlos" junto con las librerías de (x)Harbour para generar el archivo . es decir. entonces puedes hacer programas con el lenguaje Clipper que ya conoces para otros sistemas operativos.C". por lo que no requieres ningún otro producto adicional. terminal.. efectivamente. Harbour "traduce" tu código Clipper a código en lenguaje "C". en vez de utilizar el compilador Clipper compilamos con el compilador Harbour (los parámetros de compilación exactamente los mismos que Clipper). ya que Borland ha liberado al dominio público sin restricciones de uso el compilador Borland C++ Ver. se siente mas "cómodo" con xHarbour. los archivos . Así que lo que primero que necesitamos para migrar nuestras aplicaciones es conseguir xHarbour.OBJ. los cambios que tienes que hacer son mínimos).exe En (x)Harbour tomas tu código fuente en archivos . Retomando el tema. MS-DOS de 32 bits (DR-DOS). Un momento.lib.OBJ en alguna parte del proceso de compilación. que no es en realidad un código "C" estándar. obviamente los compiladores de C para estas plataformas son distintos a los usados para aplicaciones Windows. eso sí. esto es porque el código generado es un "PCODE". pero la versión mas popular es la desarrollada para Borland C++. ¡ claro que existen !. MacOS. y ahora sí. generará los archivos . no serán programas gráficos con ventanas ni nada. aunque xEdit soporta compilación con Harbour. Para cada uno de estos sistemas operativos existen versiones de (x)Harbour disponibles. como Linux. el código te parecerá mas Ensamblador que "C". OS/2 de IBM. Exospace. el Pelles C. y es aquí donde XEdit entra en acción.5. El verdadero problema de generar un EXE con (x)Harbour viene en la parte de proceso de compilación con "C".lib. SON ARCHIVOS ". por otro lado siendo el Borland C++ el compilador de C preferido por los .. serán programas MS-DOS (para modo consola).EXE. 5. En (x)Harbour las cosas son "un poquito" mas complejas: archivo.OBJ.(clipper.prg -> archivo.lib) y el resultado del proceso de enlazado o "linkeado" era un archivo .EXE. Todos los compiladores de "C" incluyen su propio enlazador (linker).lib. extend. la "PMACHINE" para interpretar este PCODE viene en las librerías de Harbour que tienes que enlazar en el archivo . posteriormente esos archivos .PRG (el mismo código fuente que tienes en Clipper en este momento. es que al generar (x)Harbour código en "C". el MingW32 ó el Open Watcom. entonces sí deben de existir archivos . un código que solo puede ser interpretado por un motor especial llamado "PMACHINE". el Compilador de "C" volverá a compilar nuestros archivos generados con (x)Harbour.obj -> archivo.OBJ provienen de compilar el código en "C" para ello necesitas un compilador de C. simplemente descarga este archivo . por lo que nos será de mucha utilidad que además de los datos que te pedimos como obligatorios.ciber-tec. Solo como comentario. Recibirás las instrucciones de descarga por e-mail. la segunda razón por la que te pedimos que te registres es para informarte de la disponibilidad de la versión final de XEdit cuando esté lista.Exe simplemente ejecútalo y realizará la instalación del compilador en la carpeta c:\Borland. previo registro.programadores. No hay proceso de instalación.ZIP y desempácalo en una carpeta que se llame de preferencia c:\xharbour (los ejemplos que se mostrarán mas adelante los he construido basándome en esta ubicación). tienes que obtenerlo desde la página que Borland a través de su filial CodeGear ha establecido para tal fin. el uso de este compilador es gratuito. Puedes descargar una versión Beta para probar XEdit de: http://www. el programa que gestiona el registro y envía los correos electrónicos se escribió totalmente usando XEdit y está hecho con xHarbour. pero no es de libre distribución. Descarga el archivo . usando un componente especial para programación para internet desarrollado por nosotros llamado WebAS (no se rían : Web Application System y si piensan que lo desarrollamos cuando no teníamos nada que hacer y estábamos aburridos. puedes acceder a la página para obtener el Borland C++ haciendo click aquí.ZIP de acuerdo a las instrucciones del correo que recibirás y desempácalo en una carpeta que se llame c:\xedit2. y procederemos a configurar el comportamiento básico de la herramienta: Selecciona: Menú Principal / Herramientas / Opciones Generales Aparece una ventana como esta: . lo que necesitas está haciendo click aquí. así que asegúrate de dar una dirección de correo válida. Luego vas a necesitar el compilador C++ de Borland.org y buscar la versión del compilador para Borland.com/xedit/ Deberás rellenar el formulario que está en esta página por 2 motivos: el primero es para llevar un grupo de control de beta testers.EXE desde la carpeta donde lo haz instalado.d2g. entonces necesitaremos obtener una versión de xHarbour para Borland C++. están en lo cierto). Te voy a ahorrar la molestia de ir a la página de xHarbour. rellenes todos los campos del formulario para poder ubicar el perfil de cada usuario. A continuación te explicaré los primeros pasos en el uso de XEdit. Ejecuta el archivo XEDIT. El archivo que se descarga se llama FreeCommandLineTools. Advantage Database Server y Funcky. que deberán ser suficientes para poder compilar cualquier aplicación Clipper actual a 32 bits con xHarbour. LIB e INCLUDE: A continuación selecciona del árbol BCC++ (Compilador de Borland C++) y haz lo mismo que con la configuración de xHarbour.Selecciona del árbol. xHarbour (no Harbour) y deberás indicar los directorios donde has instalado el compilador. indicando además la ubicación de las carpetas BIN. indica donde están los distintos directorios del compilador de C: . Y listo. hemos terminado la primera etapa de la configuración. para compilar una aplicación en (x)Harbour para modo consola se necesitan ciertos parámetros de compilación. Aparece una ventana como esta: . necesarias de acuerdo a cada necesidad específica. y definir la ubicación de los archivos de cabecera. Un entorno de programación es una configuración especial de carpetas adicionales y de opciones de los compiladores tanto de xHarbour como de Borland. Ahora tenemos que crear un entorno de programación. mientras que para compilar una aplicación para Windows hecha con FiveWin. Para crear un entorno: Menú Principal / Herramientas / Entorno de programación. se necesitan incluir algunos archivos. por ejemplo. Tenemos que darle un nombre a este entorno. verás que aparece un botón que tiene una hoja en blanco del lado derecho del campo donde haz puesto el nombre. y verás como ahora aparece una configuración sugerida para xHarbour y Borland C++: . así que en NOMBRE teclea por ejemplo "xharbour". haz click sobre el. Da click en el boton ACEPTAR y listo. este es un ejemplo de la configuración de XEdit que yo utilizo para compilar un programa FiveWin: . entonces podemos crear otro entorno llamado FiveWin. y añadir la ubicación de las carpetas donde se encuentran las librerías y archivos de cabecera de FW. Como XEdit también se puede utilizar para compilar programas para Windows hechos con FiveWin. haz creado un entorno de programación para crear programas con xHarbour para modo consola. hemos terminado con el proceso de configuración. personalmente lo que yo hago es crear una carpeta llamada PROYECTOS debajo de la carpeta XEDIT2 y ahí voy creando subcarpetas para guardar cada proyecto.. Para crear un proyecto nuevo: Menú principal / Archivo / Nuevo Proyecto. y así sucesivamente.rc. tenemos que entender como trabaja XEdit. Antes de comenzar. XEdit trabaja en base a "proyectos". Puedes crear carpetas nuevas para tus proyectos desde la ventana donde se te pide que le des un nombre al proyecto.ch en otra. por ejemplo el código fuente va en una carpeta. Creemos pues la capeta "PRUEBA1" y pongamosle el mismo nombre a nuestro .Una vez que hemos creado nuestros entornos de programación.. un proyecto no es mas que una carpeta del disco duro que a su vez tiene subcarpetas donde se guardan los distintos componentes de la aplicación. se hace otra para los archivos de recursos .. ahora llegó el momento de comenzar a migrar nuestros programas a 32 bits. los archivos de cabecera . que configura las propiedades del proyecto: Aquí indicaremos si queremos crear un EXE o una LIB. Pulsamos el botón de ACEPTAR y aparece esta ventana.proyecto: La configuración de cada proyecto se guarda en archivos XPJ (Xailer/Xedit ProJect) que no son mas que archivos .INI con información sobre el proyecto que estamos usando. una descripción del aplicativo . previamente creado.que estamos desarrollando. presionemos el botón ACEPTAR para guardar los cambios (puedes volver a esta ventana posteriormente desde Menú Principal / Proyecto / Propiedades del proyecto). en este caso "xharbour".PRG de ejemplo y a compilarlo usando xEdit. también deberemos indicar el nombre del módulo principal.PRG. misma que se "pegará" al EXE final.exe y MUY IMPORTANTE debemos indicar el ENTORNO DE PROGRAMACION. en este caso prueba1. vamos a crear un pequeño . Veremos en el editor de código fuente que aparece una pestaña nueva con el nombre MODULE1. Seleccionaremos: Menu Principal / Archivo / Nuevo / PRG. Al presionar el botón Aceptar XEdit te pondrá el siguiente mensaje de aviso: Indicándote que se van a crear subcarpetas para guardar los distintos componentes de tu aplicación. que vayamos a utilizar para compilar este programa. escribiremos lo siguiente y guardaremos este código fuente : . Ya estamos listos para hacer un pequeño experimento. pero de momento dejaremos en blanco este espacio. simplemente haz click en el botón "SI". deberemos indicar el nombre del archivo de salida. 0 Errors .. Llegó el momento de compilar este programa. Para ejecutarlo.Como verás es un programa Clipper puro y duro. Los mensajes del compilador los verás en la parte inferior de la ventana del editor de código: Si la última línea es 1 Files. ¡ Felicidades ! haz logrado compilar tu primer programa a 32 bits. X Warnings. haz doble click sobre él en el explorador de Windows y verás aparecer . con instrucciones básicas de modo consola.. simplemente selecciona: Menu Principal / Proyecto / Compilar ó presiona Ctrl+F9.. PRG que arranca tu aplicación. entonces hay que cambiar algunas cosas y añadir .PRG que vayas a compilar a la carpeta SOURCE. Si en alguno de tus programas utilizas una FUNCTION MAIN() entonces en las propiedades del proyecto (Menu principal / Proyecto / Propiedades del Proyecto) en la opción de MODULO PRINCIPAL selecciona el PRG que tiene la función MAIN(). y luego selecciona: Menu Principal / Proyecto / Añadir Fichero al proyecto Selecciona todos los . entonces selecciona el .PRGs que necesites. si no tienes función Main en algunos de tus programas. Si estás programando con FiveWin. Para compilar todos los programas simplemente presiona Ctrl + F9. tienes que hacer lo siguiente: Copia todos los .una ventana de MS-DOS con esto: Para compilar mas de un . realiza esta misma operación si tienes archivos .CH que desees integrar en tu sistema.PRG. pero quedará registrado el nombre del RC en las propiedades del proyecto para que al momento de compilar XEdit lo incluya en los archivos que deben ser enlazados para generar el EXE final. CUR.PRGs para un programa con FiveWin se agregan al proyecto de la misma manera que como se hace para un proyecto para xHarbour modo consola.RC que utilizas en tu programa FiveWin. para activarlo selecciona: Menu principal / Ver / Gestor de recursos Y aparecerá la siguiente pantalla: Presiona el botón que tiene hoja en blanco. esta pantalla te sugiere el nombre del .BMP. del lado izquierdo de la pantalla.RC.RC. . Para integrar los recursos gráficos (archivos . etc. pero mi sugerencia es: dale el mismo nombre que el archivo . aparecerá una ventana para dar nombre al archivo de recursos.RC vacío. en este caso será el mismo nombre que el de tu proyecto. esto se hace usando el Gestor de Recursos de XEdit. procederemos la siguiente manera: Primero tenemos que crear un archivo de recursos vacío.) al proyecto XEdit. .otras: Los .ICO. ese botón sirve para crear un archivo de recursos . esta operación creará un archivo RC vacío. . y no tener que ir navegando por todo el disco duro para encontrar el EXE adecuado.RC. esta característica es sumamente útil para enlazar por ejemplo tu editor de recursos como una opción del menú del Xedit. estás advertido. así que el que avisa no es traidor.CHM hacemos lo siguiente: Menu Principal / Herramientas / Configurar Herramientas Aparece la siguiente pantalla. Aprovechando que estamos hablando del tema de los recursos. y XEdit hace el resto. que pueden ser no solo archivos .EXE sino también archivos de ayuda . la siguiente información te puede ser útil: ¿ sabías que puedes programar XEdit para "lanzar" cualquier aplicación que quieras desde el menú principal ?. es MUY IMPORTANTE que primero crees el . cursores y bitmaps que tenga pegados adentro.RC vacío.DESPUES de crear el RC vacío. ya que si copias primero los recursos a la carpeta RESOURCE y luego creas el . compilará y enlazará los recursos dentro de tu programa .CHM que quieras añadir al menú: . yo por ejemplo tengo configuradas las herramientas que más uso la opción HERRAMIENTAS del menú principal: Para agregar herramientas.EXE. puedes copiar todos tus recursos a la carpeta RESOURCE de tu proyecto XEdit. presiona el boton AÑADIR y luego selecciona el archivo . con todos los diálogos.EXE o .RC con el Gestor de Recursos entonces TE VAS A CARGAR TU . la cual se ejecutará de manera automática cada vez que la selecciones del menú. Retomando el tema de FiveWin con xEdit.¡ y listo !. puedes usar los trucos ahí mencionado. si compilas tu programa FiveWin con XEdit. si el compilador de recursos de Borland te está dando problemas con el tamaño de los archivos . haz agregado una herramienta a tu menú.RC o con los bitmaps muy grandes o de muchos colores. también puedes cambiar el compilador de recursos para usar otro que dé menos problemas.LIB.LIB) Xedit posee un gestor de librerías. dentro de este mismo blog. Para la gestión de librerías (archivos . Ahora bien. para acceder a el: Menú Principal / Proyecto / Propiedades del Proyecto y seleccionar del árbol:LIBRERIAS Aparece una pantalla similar a esta: . para saber como lee mi artículo: Cambiando el compilador de recursos. otra cosa importante son las librerías adicionales que suelen llevar los programas FW. para empezar las 2 básicas: FIVEHX. recuerda que XEdit es muy similar al IDE de Xailer.LIB y FIVEHC. se ve así: .Pulsando el botón AÑADIR. en este caso he añadido las 2 librerías de FiveWin. y tu podrás seleccionar las adicionales que necesites haciendo click en el checkbox. compilado con XEdit. También es posible definir el orden de linkeado. por default XEdit te incluirá que las de xHarbour y Borland C++. subiendo y bajando las librerías con los botones que tienen flechas. podrás agregar las librerías que quieras incluir en tu proyecto. Este bonito proyecto en FiveWin. con el consabido ahorro de tiempo. porque el IDE de Xailer y XEdit comparten muchas herramientas comunes. además de que si en un futuro decide desarrollar aplicaciones para Windows usando Xailer. conozco muchos programadores que todavía compilan sus programas con archivo . . pero ahora te toca a tí descubrirlas. además de que podrán probar "un poquito" sobre como se desarrolla usando Xailer. El programador de FiveWin también encontrará en XEdit un valioso aliado. hemos establecido un foro de consulta de XEdit en nuestros foros de soporte. con XEdit podrán automatizar mucho de ese trabajo.MAK desde una ventana de MS-DOS o todavía utilizan el EDIT de MS-DOS o el NOTEPAD para escribir sus programas. encontrará en XEdit LA HERRAMIENTA que le facilitará el proceso de migración.Existen mas trucos y herramientas disponibles con XEdit. El programador de Clipper que quiera migrar a xHarbour.BAT o . Para poder ofrecer ayuda a los beta testers de XEdit y hacer un mejor seguimiento de la corrección de bugs y mejoras al producto. pues ya tendrá un buen trecho andado. así como otras herramientas interesantes todas integradas en un mismo lugar. tendrán un editor de código profesional. he incluído en el paquete de distribución de XEdit el archivo XAILERES. el editor de código fuente. que es el archivo que contiene la ayuda sobre el uso del IDE de Xailer. como el gestor de proyectos.Ya que el IDE de Xailer es muy similar al XEdit. . ahí podrás aprender como usar la mayoría de las herramientas de XEdit. Espero que con este tutorial muchos de ustedes se animen a darle las gracias al nuestro viejo y querido Clipper y que se adentren en el mundo de la programación a 32 bits. la configuración. etc.CHM.