Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
problemas con graficos
Enviado por ivan el día 17 de agosto de 2003
el problema es que alcompilar el programa me sale el siguiente error
fatal..\inclde\graphics.h 19: error directive:BGI graphics not supported under Windows
el programa es
#include <graphics.h>
#include <iostream.h>
int main(){
ellipse(3,3,3,3);
return 0;
}
tengo windows xp
aver quien puede solucionar el problema
YO TENGO EL PROBLEMA DE TENER UN PROGRAMA HECHO CON TURBO C 3.1 Y COMO UTILIZA EL EGAVGA.BIN ahora compilado en el exe que cuando quiero ejecutarlo desde un xp no funciona... si lo hace de un w98se
A parte te falta establecer el sistema grafico en tu programa, asi como detectar el driver necesario, todo esto dentro del programa, no es suficiente con incluir la libreia. Ej.:
#include <graphics.h>
#include <iostream.h>
int main(){
hola: mandame tu codigo hou jueves para que lo vea y te envia alguna solucion a tu correo.
mi direccion es vrortiz@snsp.gob.mx
si no puedo reducir tus dudas, de aperdida te las amplio..ok....
BASICAMENTE LO QUE SUCEDE ES QUE XP NO PUEDE
MANEJAR BIEN ALGUNOS PROGRAMAS DE DOS
ESTO SE DEBE A QUE EL MODO GRAFICO (MODO 13)
SE CAMBIA MUY RAPIDAMENTE Y WINDOWS DA COMO
QUE ES UNA OPERACION NO VALIDA
YO TENGO WINDOWS98 Y PARA EJECUTAR PASO A PASO
PROGRAMAS EN TURBO C++ DE BORLAND TENGO QUE
USAR D.O.S PURO SI NO WINDOWS ME DETIENE LA OPERACION
HACE UNA COSA PROBA BAJAR LA RESOLUCION DE WINDOWS A 16 COLORES A VER QUE PASA
POR QUE GRAPHIC.H FUNCIONA EN ESA MODASLIDAD
Y EN 320x200 PIXELES
CONTAME SI TE ANDUBO BIEN LO QUE TE DIJE
lo que ocurre es que necesitas inicializar(en la libraría GRAPHICS.H) para que puedas utilizar las funciones contenidas en esta...
ejemplo:
#include\"graphics.h\"
#include\"stdio.h\"
int a,b,c;
main()
{
inithgraph( &a, &b,\"\")
if(graphresult != grOk)
printf(\"no es posible iniciar\");
else {
......... }
}
Enviado por MariGuanO el día 6 de diciembre de 2003
Bien ese error no tiene nada que ver con la declaracion de la biblioteca de gráficos. Más bien como dijeron por ahi arriva, tienes que activar el modo gráfico.
Te vas a Opciones - > Linker -> ibraries -> y marcas con una X la opcion que dice Graphics Library
Hola, soy nuevo en esto...pero capaz que lo que me paso a mi pueda que le sirva a los demás. A mi tb me tiraba error con tv.lib. Lo que hice fue ir a Options-Linker-Libraries y desactive TurboVision.
Espero que te ayude
#include\"graphics.h\"
#include\"stdio.h\"
int a,b,c;
main()
{
inithgraph( &a, &b,"c:\\tc\\bgi")
if(graphresult != grOk)
printf(\"no es posible iniciar\");
else {
......... }
}
creo que con esto se puede abrir graphics yprimero te vas a options ... linker...libraries...y haces clik en graphics libraries.
Y "c:\\tc\\bgi" es la carpeta en donde se encuentra grabado o instalado turco c++ (en mi caso en tc) en otras maquinas de por aca estan en "c:\\borlandc\\bgi"
eso es todo.
espero que te funcione.
Por lo q dices el error te da por q estas intentando utilizar el bgi con ventanas windows, estaras utilizando un compilador como dev c++ ,visual c++ o alguna version moderna de borland c++.Yo te recomienod q utilizes turbo c o una version antigua de borland c++. Ademas tienes q actibar las librerias graficas como han dicho antes e inicializar los graficos con initgraph(); poniendo en el ultimo parametro la direccion de donde se encuentra la carpeta del bgi. Si tienes alguna duda mira un tema q puse yo hace un par de semanas pidiendo ayuda
Enviado por Alexander el día 18 de diciembre de 2003
El programa que estas compilando es en version Turbo C en modo DOS, por lo que para trabajarlo en C++(Bajo XP) es necesario crear un proyecto y definirle PlatForm que trabaje en modo DOS Standard y al lado derecho en Standard Libraries BGI
Pero... estas con turbo c que version?... no sera que es solo para DOS.... estas trabajando con una GUI? YO TENGO un problema similar pero para linkear svga16.bgi como obj en el exe de un programa que queria cambiar de 640x480 a 800x600
el problema en si no es el sistema operativo, si no que la cabecera graphics no es para aplicaciones de windows, tendrias que checar en tu compilador de c si puedes elegir que tu salida sea para dos; ka verdad es que yo también tengo el mismo problema pero mi compilador de c no tiene la opción de elegir la salida en msdos
en el ambiente xp turbo c siempre tendra problemas por el tipo de sistema opertaivo ya que C es para ambiente msdos, una solucion es que arrancaras en simbolo del sistema sin entrara windows u otra hacer una particion en tu computadora con win98 para que no tengas problemas
El problema que se comenta es que no se arrancan los graficos y es debido a que el archivo *.bgi (egavga.bgi por ejemplo) no esta en la ruta que se necesita
Yo uso esta funcion para arrancar el modo grafico y me preocupo que dicho archivo estea en en el direcctorio BIN que es desde donde arranca la aplicación.
Tengo el XP y si me funciona el compilador Borland C 3.00 que es de dos. También es cierto que a veces se vuelve inestable y el xp me lo cierra de golpe sin avisar (cuando compilo me paso alguna vez)
int modografico()
{
int driver=0, modo=1;
initgraph(&driver,&modo,"");
delay(1500);
return 0;
}
He leido todas las soluciones que han dado al respecto, peor creo que ninguna es como la mia.
A mi me compila 0 errores y 0 advertencias, peor una vez que los corro no me visualiza el grafico, solo me aparce el cursor parpadenado, por decirlo de otra manera es como si solo se ejecutara el getch(), y no hay limpieza de pantalla, he intentado con una cantidad de graficos y nunguno los visualiza, los .bgi los teng en la ubicacion correcta, y pues ya no se que hacer.
Tengo Windows XP Pro, AMD Athlon XP 1700.
Espero contar con su ayuda.
Enviado por Martin Ribelotta el día 26 de marzo de 2004
Ja, Je, Ji, Jo, Ju, jua...
Ya somos un montos que quedamos afuera con los BGI usando Win XP... espero que alguien le diaga a Gillermo Puertas (Bill Gates :-) que programe un poco mejor los drivers para que el emulador de DOS pueda iniciar vien el modo 640x480x16 en muchas targetas graficas (la mia es una SIS 600 y algo) porque le esta pìfiando mal }:-(
Para solucionarlo yo fuerzo a los BGI a usar el modo VGAMED asi que al iniciar especifiquen gd y gm asi
int dg=VGA, gm=VGAMED;
No sera tan bonito como 640x480x16 pero igual hay 16 colores (aunque creo que la resolucion vertical y horizontal bajan...)
Si alguien le funciona DOS ENTERO con Win XP agamelo saver... seria una linda anecdota..
Como dato curioso tengo Linux Mandraque 8.1 y con DOS Emu (un emulador de DOS para linux) anda de 10... me parece que a Window$ lo voy a descartar... ja, ja, ja, ja, ja...
por hay si le dieron en el clavo,
a mi nunca despues de cualquier cantidad de artimañas pude hacer compilar algo que usara graphic(s).h // gracias a que mi borlan 5 esta montado sobre xp, pero curioso mi borland 3.1 (igual sobre xp) me compila todo.
osea que la solucion es cambiar de compilador
Hola soy nauzet, tengo un problemillaaa grande, soy novato, e inteto compilar archivos de programacion grafica, donde se incluye la libreria graphics.h, y claro no la tengo en mi sistema, es decir nop utilizo el borrland, y claro estaba pensando si incluyo la libreria graphics.h en el devc++ o pcgras, utilizo el compilador gcc, para c++ y el borland para c. Mi pregunra es: donde puedo bajarme la libreria graphics.h para incluirla y que el sistema me deje compilarlo??????? agradeceria q me respondieran
La compilacion de grafica en Borlandc, ver 3.1, siempre tiene exito, por se trata de un compilador para Dos. El Borland 5, en cambio, trabaja en Windows.
a mi tambien mandenme esa libreria "graphics.h", para el devc++, ya que le hize un copy al de turbo c++, pero no me corre. me salen estos mensajes de error:
Line 3 C:\DEV-C_~1\Include\graphics.h:248:syntax error before `('
Line 250 c:\dev-c_~1\include\syntax error before `('
Line 251 c:\dev-c_~1\include\syntax error before `('
Line 253 c:\dev-c_~1\include\syntax error before `('
Line 254 c:\dev-c_~1\include\syntax error before `('
Line 255 c:\dev-c_~1\include\syntax error before `('
Line 256 c:\dev-c_~1\include\syntax error before `('
...
Lo que pasa es que la pantalla no soporta en modo grafico en xp y tienes que darle clic derecho al mouse en la pantalla del c++ depues en la opcion targed expert y en ella cambiar a aplicacion luego en plataform a dos estandar y seleccionar el modo BGI y aceptar y listo podras correro todos los programas en modo grafico que quieras
Enviado por Zeros Metalium el día 14 de octubre de 2004
Despues de mucho romperme el coco con el Turbo Deburger y otras yerbas he sacado una conclusion y una solucion a este problema.
El modo por defecto detectado por las BGI en una targeta VGA (Nesesaria para correr Windows en cualquier vercion de 32 bits) es 640x480 a 16 colores, este modo usa cambios de planos para acomodar los pixeles de la targeta, hasta aca todo bien...
Ahora, el BIOS emulado de la cosola de WinXP no entra vien en los modos chained de la VGA. Problema de siseño... jejejejeje
Ahora o solo de las BGI es el problema, cuando hago una iniciasion en assembler usando las interrupciones de la BIOS ni por puta madre entra en los modos unchained, tambien susede con las librerias GRX usando MingW, DJGPP, OpenWathcom y Wathcom.
Provando por ahi... me di cuenta que el modo 320x200 a 16 colores... QUE NO ES CHAINED se encendia vien. Asi que pense que los modos unchained podian funcionar vien.... Correcto.
Poniendo
int gd=VGA, gm=VGAMED;
initgrap(....y toda la bola
entramos en un modo de menor resolucion pero anda de perilla.
Por favor diganle a Bill que se dedique a otra cosa... como a alludarle a planchar la camisa a su amigo Bush en los devates jejejejeje....
Me has dado la SOLUCIÓN a mis problemas con gráficos.
Tengo win XP y borland C++ 5.0.
Mi problema era "BGI graphics not supported under windows", y ahora con tu ayuda he logrado habilitar el modo gráfico en mis programas. Como bien dice el mensaje de error, el problema era que windows efectivamente no soporta los modos gráficos BGI (y si dice que no lo soporta es porque no lo soporta), pero cambiando el tipo de salida a modo "dos" y habilitando el modo BGI... ya no hay problema (dos sí lo soporta).
No nos quebremos la cabeza trantando de hacer algo q windows no permite fácilmente.
En ocasiones, la solución más simple es lo que se necesita... si no lo creen así, les deseo mucha suerte para mejorar el windows !!!
Saludos.
Mensaje de original:
Enviado por Betosr el día 14 de octubre de 2004
Lo que pasa es que la pantalla no soporta en modo grafico en xp y tienes que darle clic derecho al mouse en la pantalla del c++ depues en la opcion targed expert y en ella cambiar a aplicacion luego en plataform a dos estandar y seleccionar el modo BGI y aceptar y listo podras correro todos los programas en modo grafico que quieras
Enviado por darkstar el día 8 de noviembre de 2004
hola, mi nombre es martin y te recomendaria que primero abrieras una ventna msdos y la maximizaras, puesto que xp te permite usar ciertas funciones de msdos si esta maximizado, despues escrivi el codigo como sigue
if (error != grOk)
{
cout <<"hay un error al inicializar los graficos "<<endl<<grapherrormsg(error);
}
ellipse(3,3,3,3);
closegraph();
}
compila este codigo con el turbo c y tendria que funcar, otra cosa que podes hacer es que en la funcion detectgraph(,,,) sería en el ultimo parametro, pasarle la ruta al fichero bgi, acordate que en c o c++ las barras siempre son dobles o sea \\ (alt + 92).
desde ya suerte, si no te funciono,escrivime a martin_alganaraz@yahoo.com.ar
Enviado por jlpueser el día 22 de noviembre de 2004
La solución que dais para Turbo C está bien (options, linker, librarian...) Pero... ¿qué pasa con el Borland C++? ¿Alguien sabe como solucionar el problema de la BGI en ese programa?
Enviado por jlpueser el día 24 de noviembre de 2004
Ya está, ya lo he descubierto. No era más que abrir un proyecto nuevo en el que le digas que quieres plataforma MSDOS y marcar la casilla de la BGI. Vaya tontería.
Enviado por eder_matus el día 25 de noviembre de 2004
Hola mi nombre es Eder Matus soy de Matagalpa, Nicaragua, he leido muchos mensajes acerca de como utilizar las funciones graficas aqui les doy una ayuda para los que tengan el compilador Borland C++ 4.5, primeramente deben de copiar el codigo en el area donde se escribe codigo es decir File->New una vez que ya tienen copiado el codigo hacen click derecho sobre el area de codigo aparece un menu emergente seleccionar del menu la opcion TargetExpert a continuacion les aparece la ventana de opciones de TargetExpert donde se encuentran los tipos de targeta (Target Type) seleccionar la opcion dando un click en Application [.exe] despues elegir la plataforma (Platform) y escoger en el combo que aparece ahi la opcion DOS (Standard) y notaran que en la parte que dice librerias estandar (Standard Libraries ) aparece tres opciones entre ellas estan (Class Library , Runtime, BGI) aca podran notar que esta seleccionada las tres opciones, en caso que no lo esten seleccionarlas, este fue el paso para que soporte BGI utilizando el sistema operativo windows XP, ahora otra consideracion a tomar en cuenta, al momento de hacer un programa con funciones graficas en el lugar donde se guarda el programa se debe guardar tambien el archivo EGAVGA.BGI este archivo se debe de copiar, se encuentra en la siguiente direccion C:\BC45\BGI puedes probarlo de la siguiente manera, primera creas una carpeta le pones nombre que tu quieras, dentro de esa carpeta debes guardar el codigo fuente y hacer las modificaciones del area de trabajo antes mensionadas, tambien dentro de la carpeta debes guardar el archivo EGAVGA.BGI ya que este archivo lo busca el compilador al compilar y ejecutar tu codigo fuente, puedes probarlo con el siguiente codigo,,,,......Bueno les ayude a utilizar, ahora deseo si pueden conseguirme una version superior al Borland C++ de forma gratuita o me indican la direccion y yo lo bajare ok....a continuacion el codigo para que puedan probar las funciones graficas en Borland C++ en Windows XP.
int main(void)
{
/* Deteccion del driver */
int gdriver = DETECT, gmode, errorcode;
int left, top, right, bottom;
/* inicializar el modo grafico y variables locales */
initgraph(&gdriver, &gmode, "");
/* leer resultados de inicializacion */
errorcode = graphresult();
if (errorcode != grOk) { /* an error occurred */
printf("Error grafico: %s\n", grapherrormsg(errorcode));
printf("Presione una tecla para abortar:");
getch();
exit(1); /* terminar con el codigo de error */
}
left = getmaxx() / 2 - 50;
top = getmaxy() / 2 - 50;
right = getmaxx() / 2 + 50;
bottom = getmaxy() / 2 + 50;
/* dibujar un rectangulo */
rectangle(left,top,right,bottom);
Enviado por Amateur el día 28 de noviembre de 2004
yo tengo windows xp y no me ejecutan las funciones graficas, pero en los computadores de mi universidad (xp ) si funcionan , (en mi computador solo funcionan los setbkcolor)
por favor ayudenme
Enviado por Drakosr el día 13 de diciembre de 2004
La mayoria de las veces las personas que colocan en las paginas los programas son ejemplos basicos elaborados rapidamente por lo que se le van algunos detalles como el punto y coma, algun parentesis etc. Dev-C++ no es un compilador, es un IDE (Integrated Developmet Environment - Entorno Integrado de Desarrollo) que utiliza el compilador Mingw (versión MSCVRT 2.95.2-1). El compilador va incluido en el programa de instalación. También se puede usar con el compilador Cygwin.
Funciona bajo Windows y se pueden crear programas para DOS y Windows.
Se distribuye bajo licencia GPL y por supuesto incluye el código fuente (en Delphi).
OK . . . TU ERROR ESTA EN QUE NO INICIAS EL MODO GRAFICO ( SI NO LO SABES INICIAZAR, EN EL MENU D E AYUDA DE C O C++ PUEDES ENCONTRAR ESTE ARCHIVO QUE SE LLAMA INIGRAPH LO PUEDES COPIAR Y PEGARLO DESPUES DEL MAIN Y ENSEGUIDA EDITAS LO QUE MUESTRAS EN EL FORO.
PERO ADEMAS TIENES QUE HABILITAR BGI ESTO LO PUEDES HACER CAMBIANDO DE DIRECTORIO.
ENTRAS AL MENU PRINCIPAL, UNA VEZ ECHO ESTO ENTRAS AL MENU DE ARCHIVO , CLICK SOBRE LA OPCION: DOS SHELL Y A CONTINUACION SALES DEL DIRECTORIO BIN Y EDITAS BGI Y CON ESTO SOLUCIONAS TU PROBLEMA
Enviado por Diana-MX el día 15 de diciembre de 2004
Hola: Ya lei todos sus consejos y la vdd, resolvieron mi problema solo quiero retroalimentar ciertas cosas,
Si tienen la version C++ 5.01 esta crea una carpeta por defecto de "c:\BC5\"
por lo que dicen de \tc\bgi solo tienen que cambiar en la inicializacion de graficos a el directorio bgi en BC5:
EJEMPLO:
initgraph(&gdriver, &gmode, "C:\\BC5\\BGI");
Espero que les sea de utilidad a quien tengas esta version de c++
bye y gracias por su ayuda
tu compilador Brorland debe ser una version inferior al 3.1, por lo que este programa en modo grafico no te corre bajo windows y debes correrlo bajo DOS, graphics not supported under Windows significa la opcion modo grafico no esta soportada bajo windows, correla en DOS y veras, para quew te corra en DOS has lo siguiente:
1.ve a FILE y busca change dir....
2.escoje donde veas BORLAND y una linea que sigue hasta BIN,
3.ahi haz click en BORLAND y escoje BGI
3.acepta y luego ve a OPCION y escoje LINKER
4.activa la opcion grafics que esta en la esquina superior izquierda y acepta
5.compila el juego para ver si yha no hay errores y correlo, veras como te funciona
Bueno, yo estoy usando Borland c/c++, y puedo abrir librerias graphicas y demas, pero lo que todavia no pude hacer, fue hacer aparecer en pantalla una imagen, ya sea bmp o jpg (la ultima vez que probe, hice que aparecieran algunos pocos pixeles coloreados ^_º), pero levantandola desde un archivo en disco. Me dijeron que primero tenia que setear la paleta para que trabaje a 256 colores, pero luego de intenter y probar otra vez, no pude levantar nada. Estoy seguro que me falta algo en mi codigo y lo mas probable es que me falten sentencias (las cuales desde ya no se me ocurren cuales pueden ser). Si me podrian decir aunque sea los pasos para hacerlo y si pudieran pegarle una chequeadita al codigo estare agradecido.
pues si es en borlan tienes que abrir el archivo como un flujo de datos binario y crear una estructura de datos llamada header que contiene informacion del Archivo y hasta despues de haber pasado el header estan los datos...no los puedes poner directamente con put image...put image es solo para imagenes ya leidas que no estas usando en el momento para dibujar la imagen tienes que ir leyendo los bits dependiendo del formato de tu imagen por que si es jpg estas tienen algoritmos de compresion y tienes que descomprimirlo los mas sencillos son los bmp o los pcx investiga el header y los detalles del formato y ya despues nada mas lee la informacion
puede alguien dejar un ejmplo para poder realizar un grafico en borland c 5.0 que esta montado sobre Wxp... y que no salga el error de siempre \"\"BGI not supported under la cochinada de Windows\"...