Oppure

Loading
27/12/14 2:40
tullio1995
Salve a tutti, utilizzo come sistema operativo windows 8.1. Volevo provare a creare qualche gioco utilizzando la libreria winBGIm. Compilo questo codice,
#include <graphics.h>
 
  int main() 
  { 
      initwindow(400,300); //apre una finestra 400x300
      moveto(0,0);         
      lineto(50,50);       
      while(!kbhit())      //aspetta la pressione di un tasto
      closegraph();        //chiude la finestra
      return 0; 
  }

da terminale con winMG utilizzando questo comando: "g++ prova.c -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32".
Il programma viene compilato correttamente senza errori, ma quando lo vado ad eseguire si blooca e mi esce la finestra con scritto "Il programma ha smesso di funzionare". Ho provato ad eseguirlo in modalità di compatibilità con gli altri sistemi operaviti, ma il risultato è sempre lo stesso. Spero che qualcuno di voi sappia risolvere questo problema :hail:
aaa
27/12/14 10:59
Poggi Marco
Ciao!

Che compilatore utilizzi?

Molto probabilmente, non hai installato la libreria WinBGIm. ( winbgim.codecutter.org/ )
aaa
27/12/14 14:14
SamIAm
Ciao,
Se anche tu hai scaricato la libreria da qui winbgim.codecutter.org/
Avrai notato un errore nell'header "graphics.h" alla riga 302
[CODE]
int left=0, int right=0, int right=INT_MAX, int bottom=INT_MAX,
[/CODE]
in realtà deve essere
[CODE]
int left=0, int top=0, int right=INT_MAX, int bottom=INT_MAX,
[/CODE]
sistema questa 'svista' e ricompila la libreria (lavorando un poco per eliminare alcuni warning)
sposta i file "graphics.h" e "libbgi.a" nella cartella del MinGW, e vedrai che il tutto torna a funzionare.
aaa
27/12/14 15:14
tullio1995
Come compilatore utilizzo minGW compilando da terminale. Il problema della riga 302 lo avevo già risolto, infatti il compilatore mi crea l'eseguibile senza errori, il problema e quando lo mando in esecuzione che non si avvia. Quando vado ad eseguire il sorgente compilato mi si apre un terminale e poi una finestra con scritto il programma ha smesso di funzionare. Ho provato a compilare la libreria graphics.h e non mi da ne errori ne warning, credo sia un problema del sistema operativo :yup:
aaa
27/12/14 15:44
SamIAm
Io ho Windows Seven, ed ho compilato tutto da riga di comando. (g++ 4.7.1)
E nel mio caso la libreria ha funzionato solo dopo averla ricompilata.
aaa
27/12/14 15:50
tullio1995
Io ho g++ 4.8.1 e ho provato a ricompilare la libreria, ma il risultato è lo stesso. Ho dato il comando "g++ graphics.h" nella cartella include di MinGW
aaa
27/12/14 17:29
SamIAm
Postato originariamente da tullio1995:

Io ho g++ 4.8.1 e ho provato a ricompilare la libreria, ma il risultato è lo stesso. Ho dato il comando "g++ graphics.h" nella cartella include di MinGW


Un momento, "graphics.h" è soltanto un header e non è compilabile ...

Io ho creato un file .BAT nella cartella dove ho estratto i file sorgenti della libreria "WinBGIm"


SET "PATH=C:\Program Files (x86)\CodeBlocks\MinGW\bin;%PATH%"
mingw32-make.exe -f makefile
PAUSE



eseguendolo generi la libreria "libbgi.a"

copi il file "graphics.h" nella cartella "\MinGW\include"
e sposti il file "libbgi.a" nella cartella "\MinGW\lib"

Infine per compilare il programma ho creato un'altro file .BAT nella cartella del progetto.


SET "PATH=C:\Program Files (x86)\CodeBlocks\MinGW\bin;%PATH%"
g++ sample.cpp -o sample.exe -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32
PAUSE



:yup:
Ultima modifica effettuata da SamIAm 27/12/14 17:36
aaa
27/12/14 17:57
tullio1995
SET "PATH=C:\MinGW\bin;%PATH%"
mingw32-make.exe -f makefile
PAUSE

C:\Users\Tullio\Desktop\WinBGIm6_0_Nov2005_src>SET "PATH=C:\MinGW\bin;C:\Windows
\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerSh
ell\v1.0\;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\MinGW\bin"

C:\Users\Tullio\Desktop\WinBGIm6_0_Nov2005_src>mingw32-make.exe -f makefile
g++ -c -O3 -fno-rtti -fno-exceptions drawing.cxx
g++ -c -O3 -fno-rtti -fno-exceptions misc.cxx
g++ -c -O3 -fno-rtti -fno-exceptions mouse.cxx
g++ -c -O3 -fno-rtti -fno-exceptions palette.cxx
g++ -c -O3 -fno-rtti -fno-exceptions text.cxx
text.cxx:71:1: warning: deprecated conversion from string constant to 'char*' [-
Wwrite-strings]
 };
 ^
text.cxx:71:1: warning: deprecated conversion from string constant to 'char*' [-
Wwrite-strings]
text.cxx:71:1: warning: deprecated conversion from string constant to 'char*' [-
Wwrite-strings]
text.cxx:71:1: warning: deprecated conversion from string constant to 'char*' [-
Wwrite-strings]
text.cxx:71:1: warning: deprecated conversion from string constant to 'char*' [-
Wwrite-strings]
text.cxx:71:1: warning: deprecated conversion from string constant to 'char*' [-
Wwrite-strings]
text.cxx:71:1: warning: deprecated conversion from string constant to 'char*' [-
Wwrite-strings]
text.cxx:71:1: warning: deprecated conversion from string constant to 'char*' [-
Wwrite-strings]
text.cxx:71:1: warning: deprecated conversion from string constant to 'char*' [-
Wwrite-strings]
text.cxx:71:1: warning: deprecated conversion from string constant to 'char*' [-
Wwrite-strings]
text.cxx:71:1: warning: deprecated conversion from string constant to 'char*' [-
Wwrite-strings]
text.cxx: In function 'void outstreamxy(int, int, std::ostringstream&)':
text.cxx:354:25: warning: deprecated conversion from string constant to 'char*'
[-Wwrite-strings]
      y += textheight("X");
                         ^
g++ -c -O3 -fno-rtti -fno-exceptions winbgi.cxx
winbgi.cxx: In function 'char* getdrivername()':
winbgi.cxx:464:12: warning: deprecated conversion from string constant to 'char*
' [-Wwrite-strings]
     return "EGAVGA";
            ^
winbgi.cxx: In function 'char* grapherrormsg(int)':
winbgi.cxx:570:56: warning: deprecated conversion from string constant to 'char*
' [-Wwrite-strings]
         "Invalid font number", "Invalid device number" };
                                                        ^
winbgi.cxx:570:56: warning: deprecated conversion from string constant to 'char*
' [-Wwrite-strings]
winbgi.cxx:570:56: warning: deprecated conversion from string constant to 'char*
' [-Wwrite-strings]
winbgi.cxx:570:56: warning: deprecated conversion from string constant to 'char*
' [-Wwrite-strings]
winbgi.cxx:570:56: warning: deprecated conversion from string constant to 'char*
' [-Wwrite-strings]
winbgi.cxx:570:56: warning: deprecated conversion from string constant to 'char*
' [-Wwrite-strings]
winbgi.cxx:570:56: warning: deprecated conversion from string constant to 'char*
' [-Wwrite-strings]
winbgi.cxx:570:56: warning: deprecated conversion from string constant to 'char*
' [-Wwrite-strings]
winbgi.cxx:570:56: warning: deprecated conversion from string constant to 'char*
' [-Wwrite-strings]
winbgi.cxx:570:56: warning: deprecated conversion from string constant to 'char*
' [-Wwrite-strings]
winbgi.cxx:570:56: warning: deprecated conversion from string constant to 'char*
' [-Wwrite-strings]
winbgi.cxx:570:56: warning: deprecated conversion from string constant to 'char*
' [-Wwrite-strings]
winbgi.cxx:570:56: warning: deprecated conversion from string constant to 'char*
' [-Wwrite-strings]
winbgi.cxx:570:56: warning: deprecated conversion from string constant to 'char*
' [-Wwrite-strings]
winbgi.cxx:570:56: warning: deprecated conversion from string constant to 'char*
' [-Wwrite-strings]
winbgi.cxx:570:56: warning: deprecated conversion from string constant to 'char*
' [-Wwrite-strings]
g++ -c -O3 -fno-rtti -fno-exceptions winthread.cxx
g++ -c -O3 -fno-rtti -fno-exceptions -c file.cxx
g++ -c -O3 -fno-rtti -fno-exceptions dibutil.cxx
rm graphics.h
process_begin: CreateProcess(NULL, rm graphics.h, ...) failed.
make (e=2): Impossibile trovare il file specificato.
makefile:37: recipe for target 'graphics.h' failed
mingw32-make.exe: *** [graphics.h] Error 2

C:\Users\Tullio\Desktop\WinBGIm6_0_Nov2005_src>PAUSE
Premere un tasto per continuare . . .

mi da questi errori
Ultima modifica effettuata da tullio1995 27/12/14 18:11
aaa