Seguro que más de una vez os habéis preguntado si hay alguna manera de distribuir aplicaciones gráficas creadas con
Turbo C/C++ y las librerías
BGI sin necesidad de incluir el archivo
EGAVGA.BGI y los archivos de fuentes de texto (
.CHR) junto con la aplicación. Pués bien, aquí y ahora vamos a descubrir ese misterio para aquellos que desconozcáis como hacerlo. Veréis que es muy sencillo.
En primer lugar será necesario convertir el archivo
EGAVGA.BGI en un archivo objeto (
.OBJ). Lo haremos con la utilidad
BGIOBJ.EXE que se encuentra en el directorio
BGI de
Turbo C/C++, tecleando:
C:\TC\BGI>BGIOBJ EGAVGASi se ha creado correctamente, debería indicarnos el nombre público del driver,
EGAVGA_driver.
Supongamos que nuestra aplicación utilizará la fuente
TRIPLEX, así que también la convertiremos.
C:\TC\BGI>BGIOBJ TRIPEl nombre público de la fuente será
triplex_font.
A continuación podemos ir al directorio donde se encuentre el código fuente de nuestra aplicación. Abrir el
Turbo C/C++ y crear un proyecto, con la opción Project\Open project.... Deberemos indicar el nombre que queremos darle al proyecto. Puede ser el mismo que el del archivo donde tengamos la función main o cualquier otro. Hay que tener en cuenta que el nombre del archivo .EXE que generemos será el mismo que el del proyecto.
Una vez que tengamos la ventana de proyecto abierta, deberemos añadir los archivos que necesitamos. Esto se hace con la opción Project\Add item.... Habrá que añadir todos los fuentes de la aplicación, y los archivos
EGAVGA.OBJ y
TRIP.OBJ que hemos creado anteriormente.
Una vez añadidos todos los archivos, deberemos editar el código fuente donde inicializamos el modo gráfico, y añadir las siguientes líneas:
registerbgidriver(EGAVGA_driver);
registerbgifont(triplex_font);
Debería quedarnos un código parecido al siguiente:
#include <conio.h>
#include <graphics.h>
void main(void) {
int tarjeta, modo, error;
registerbgidriver(EGAVGA_driver);
registerbgifont(triplex_font);
detectgraph(&tarjeta, &modo);
initgraph(&tarjeta, &modo, "");
error = graphresult();
if (error) {
printf("%s", grapherrormsg(error));
exit(1);
}
/* dibujamos un círculo relleno */
fillellipse(200,200,20,20);
while (!kbhit());
}
Ahora bastará con pulsar CTRL + F9 para compilar el proyecto y ejecutar la aplicación, y comprobar que todo ha salido correctamente y que ya podemos distribuir nuestra aplicación sin incluir archivos adicionales ;-)
Autor: Sergio Pacho