• Sábado 4 de Mayo de 2024, 17:27

Autor Tema: [Artículo] Como crear una aplicación gráfica en Turbo C/C++ (BGI) que no necesite del archivo EGAVGA.BGI para funcionar  (Leído 9617 veces)

iron man

  • Administrador
  • ******
  • Mensajes: 1137
  • Nacionalidad: es
    • Ver Perfil
    • http://www.solocodigo.com/
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 EGAVGA


Si 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 TRIP


El 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:

Código: C++
  1. registerbgidriver(EGAVGA_driver);
  2. registerbgifont(triplex_font);


Debería quedarnos un código parecido al siguiente:

Código: C++
  1. #include <conio.h>
  2. #include <graphics.h>
  3.  
  4. void main(void) {
  5.     int tarjeta, modo, error;
  6.  
  7.     registerbgidriver(EGAVGA_driver);
  8.     registerbgifont(triplex_font);
  9.  
  10.     detectgraph(&tarjeta, &modo);
  11.     initgraph(&tarjeta, &modo, "");
  12.  
  13.     error = graphresult();
  14.     if (error) {
  15.         printf("%s", grapherrormsg(error));
  16.         exit(1);
  17.     }
  18.  
  19.     /* dibujamos un círculo relleno */
  20.     fillellipse(200,200,20,20);
  21.  
  22.     while (!kbhit());
  23. }


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
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

LeGatoRojo

  • Miembro HIPER activo
  • ****
  • Mensajes: 552
  • Nacionalidad: mx
    • Ver Perfil
    • LeGatoRojo
Defecto
« Respuesta #1 en: Miércoles 9 de Junio de 2004, 08:48 »
0
Esto No Es Lo Mas Viable Si Se Va A trabajar en turbo c++, creo que lo mejor es hacer una libreria grafica en modo 13h o 10h
Un día desperte y en lugar de dientes tenía colmillos, en lugar de manos, tenía garras; pero lo más impactante fue el color escarlata de mi pelaje.

Anónimo

  • Visitante
Re: Defecto
« Respuesta #2 en: Sábado 12 de Junio de 2004, 01:08 »
0
Pués hombre, que lo más viable sea tener que hacerte una librería en lugar de utilizar una ya existente no tiene demasiada lógica según las necesidades que tengas. En cualquier caso el artículo no habla en ningún momento de cómo podrías obtener mejores o peores resultados, sinó de como distribuir aplicaciones sin incluir archivos "extra" dando por hecho que se está utilizando la BGI.

Anónimo

  • Visitante
excelente
« Respuesta #3 en: Martes 31 de Octubre de 2006, 16:20 »
0
excelente mensaje me gusto mucho y ademas me ayudo pura vida

Espartaquito

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
DIOS LOS BENDIGA!
« Respuesta #4 en: Martes 10 de Junio de 2008, 20:35 »
0
Gracias por crear estos foros donde podemos encontrar ejemplos de las tareas que nos envian sigan adelante!