Newsgroup: it.comp.lang.c
Titolo: graphics.h

sto ancora facendo il lavoro di conversione del codice da borland c a
gcc, anzi, da borland c a gcc/borland c, ovvero un codice compilabile
senza modifiche indifferentemente da un compilatore o l'altro.
il codice è stato scritto in borland c 6 per dos (che al momento non
ho), credo.
io ho installato code::blocks, borland c++ 5.5 e borland c++builder 6
dubito che posso convertirlo in gcc, ma graphics.h non la trovo né in
bcc5.5 né in c++buider 6
come lo posso compilare?
Matteo

 come lo posso compilare?
Non puoi. Devi sapere che cosa contiene graphics.h e a che tipo di routine
fa riferimento e, in qualche modo, ricostruire sia l'header che il codice.
A naso, non si prospetta come un'operazione facile.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Matteo Rossini ha scritto:

Hai dato un'occhiata a WinBGI? (
http://www.garret.ru/~knizhnik/lang.html
)

 A naso, non si prospetta come un'operazione facile.
<graphics.h> conteneva delle funzioni per fare la grafica a schermo 
intero, quando ancora non c'erano le finestre... Tipicamente c'erano 
delle funzioni per inizializzare la grafica (a seconda che la scheda 
video fosse CGA, Hercules, VGA, SVGA...) e poi si potevano fare linee 
colorate, rettangoli, e  scrivere del testo con dei font vettoriali. Mi 
pare non ci fosse molto altro.
E.

pare non ci fosse molto altro.
Se era quella distribuita con Borland Turbo C, credo si trattasse di
BGI, tecnologia proprietaria Borland, lentissima peraltro. Se non si
usano caratteristiche specifiche (come i font vettoriali) non dovrebbe
essere difficile sostituire le routine con qualcosa di più moderno.

> Hai dato un'occhiata a WinBGI? (
http://www.garret.ru/~knizhnik/lang.html
)
funge, ma ho un problemino:
	driver=DETECT;
	mode=0;
	initgraph(&driver,&mode,"");
	printf("TESTO\n");
TESTO non va a finire nella schermata grafica di bgi ma in quella dos,
che si trova SOTTO quella bgi. Idem per le operazioni di input (getch
e scanf).
Inoltre nella finestra del bgi che mi si apre, se ci passo sopra col
mouse mi viene fissa la clessidra (plausibile), e rimane anche sulla
barra del titolo, che significa che non posso né spostare la finestra
né chiuderla.
Matteo

 funge, ma ho un problemino:
Probabilmente devi usare le funzioni BGI per scrivere del testo, non è 
detto che stdout vada a finire sulla stessa finestra.
Naturalmente dipende da quello che ci vuoi fare e da quello che fa il 
programma, ma non ti converebbe spendere un po' piu' di tempo per 
convertire l'applicazione in modo che non usi BGI?
Remo.D.


Non devi usare la printf, se non ricordo male usavo writetext. Non
ricordo la sintassi.


L'applicazione è didattica... o ci riesco senza tante modifiche al
sorgente o butto tutto (e nemmeno lo riscrivo :-).
Intanto sto anche cercando di compilare winbgi con gcc (code::blocks,
mingw). O meglio... la compilazione la fa ma non riesce a linkarla
come libreria.
Matteo

 sorgente o butto tutto (e nemmeno lo riscrivo :-).
butta tutto. specie se è didattica. fare didattica con librerie
inutilmente complesse, vecchie, non portabili, etc etc etc è
assolutamente fuori luogo.
-- 
-riko

 -riko
mah.
si trattava solo di vedere un codice già bell'è pronto.
ok.
credo che comincerò a perdere tempo per qualcosa di più importante che
fare la grafica.
Comunque non era tanto il compilare quel codice quanto vedere fino a
che punto spingersi nell'affermazione "un compilatore vale l'altro e
un sistema operativo vale l'altro", visto che non è facile trovare
molto codice puramente ansi c se si usa qualche funzionalità di
interazione.
Per esempio, il banale cancellamento di una shell e relativo
posizionamento del cursore a inizio pagina (funzioni cls di dos o
clear di linux), ha primitive identiche e nelle stesse librerie in bcc
e in gcc? Già la funzione malloc() che in bcc non richiede l'include
di stdlib.h...
e lo stesso gcc in due piattaforme diverse? (windows/linux)
e tra mingw-gcc e cygwin-gcc?
Insomma... devo scegliere un compilatore e fissarmi su quello.
Ma per questo credo che dovrò aprire un altro 3ad
Matteo

 Ma per questo credo che dovrò aprire un altro 3ad
No: devi imparare a scrivere codice standard e insegnare quello.
-- 
-riko