Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Allegro.h e mysql
Forum - C/C++ - Allegro.h e mysql

Avatar
maury (Normal User)
Newbie


Messaggi: 10
Iscritto: 26/07/2009

Segnala al moderatore
Postato alle 15:42
Domenica, 26/07/2009
Salve mi chiamo maurizio, vorrei creare un gioco di ruolo in 2d online e ho appena installato le librerie di mysql++ e allegro (Le quali sò usare discretamente), però quando vado a compilare unsemplice programmino di prova nel quale l'utente muove uno sprite e le coordinate vengono salvate nel database mysql mi da i seguenti errori
(5 C:\Dev-Cpp\include\c++\3.4.2\backward\iostream.h:31,               from C:\Documents and Settings\Standard\Desktop\2004\prova.cpp In file included from C:/Dev-Cpp/include/c++/3.4.2/backward/iostream.h:31,               from C:\Documents and Settings\Standard\Desktop\2004\prova.cpp  

5 C:\Documents and Settings\Standard\Desktop\2004\prova.cpp                  from C:\Documents and Settings\Standard\Desktop\2004\prova.cpp

32:2 C:\Dev-Cpp\include\c++\3.4.2\backward\backward_warning.h #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.

6 C:\Dev-Cpp\include\windows.h:52,               from C:\Documents and Settings\Standard\Desktop\2004\prova.cpp In file included from C:/Dev-Cpp/include/windows.h:52,               from C:\Documents and Settings\Standard\Desktop\2004\prova.cpp

6 C:\Documents and Settings\Standard\Desktop\2004\prova.cpp                  from C:\Documents and Settings\Standard\Desktop\2004\prova.cpp

1222 C:\Dev-Cpp\include\wingdi.h conflicting declaration 'typedef struct tagBITMAP BITMAP'

276 C:\Dev-Cpp\mingw32\include\allegro\gfx.h 'BITMAP' has a previous declaration as `typedef struct BITMAP BITMAP'

)

questo è il codice del main
#include <allegro>
#include <stdio>
#include <string>
#include <time>
#include <iostream>
#include <windows>
#include <mysql/mysql>
#include "inserimento.h"
int x=100;
int y=240;
BITMAP *immagine, *buffer;
PALETTE colori;
void doppiobuffering()
{
vsync();
blit(buffer, screen, 0, 0, 0, 0, 640, 480);
clear(buffer);
}
int main()
{

allegro_init();
install_keyboard();
set_color_depth(32);
set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);
immagine=load_bitmap("eroe.bmp", colori);
buffer = create_bitmap(640, 480);
clear(buffer);
while (!key[KEY_SPACE]) {
doppiobuffering();
if(key[KEY_UP]){y++; x++;}
if(key[KEY_DOWN]){y--; x++;}
draw_sprite(buffer, immagine, x,y);
ins(x,y);
}
destroy_bitmap(buffer);
destroy_bitmap(immagine);
allegro_exit();
}

END_OF_MAIN ();


e questo è il codice di inserimento.h

void ins(int x, int y){
       MYSQL *sock;  
       sock = mysql_init(0);
       //Nel caso in cui l'inizializzazione non sia andata a buon fine restuituisce un mex di errore
       if (!sock) {  
        /* cout << "Errore durante l'inizializzazione dell'oggetto MYSQL " << endl << mysql_error(sock) << endl;
         system("PAUSE");
         return ;*/
    }
    char *host = "localhost";  //Hostname
    char *user = "root";         //user
    char *pass = "";             //password
    char *db = "demo";          //database
    /*
      Nel caso in cui la connessione non è andata a buon fine
      termino il programma
    */

    if (!mysql_real_connect(sock, host, user, pass, db, 0, NULL,  0)){
         /*cout << "Errore durante la connessione MYSQL " << endl << mysql_error(sock) << endl;
         system("PAUSE");*/
         return;
    }
    char sql[255];
   sprintf(sql,"INSERT INTO coo VALUES (%d,%d)",x,y);
   mysql_query(sock,sql);
   if (mysql_affected_rows(sock) != 1) {
       /*  cout << "Errore durante l'esecuzione della query " << endl << mysql_error(sock) << endl;
         system("PAUSE");*/
         return ;
    }
   mysql_close(sock);
}

Se compilati a parte non danno nessun errore.
Potreste aiutarmi ho cercato anche nel sito di allegro.cc ma non dice nulla a riguardo e ho cercato anche su google ma non ho trovato nulla...
Grazie in anticipo..

Ultima modifica effettuata da maury il 28/07/2009 alle 1:20
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 16:00
Domenica, 26/07/2009
Se devi compilare in c++ allora devi usare gli include nella forma corretta, ovvero

#include <iostream>
#include <string>

e così via

PM Quote
Avatar
maury (Normal User)
Newbie


Messaggi: 10
Iscritto: 26/07/2009

Segnala al moderatore
Postato alle 23:58
Domenica, 26/07/2009
ho provato ma non è successo nulla.
Comunque mi sono dimenticato di dire che come compilatore uso dev-cpp ver. 4.9.9.2 e non ho mai riscontrato errori nell'usare #include<iostream> invece di #include<iostream.h>.

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 10:02
Lunedì, 27/07/2009
Testo quotato

Postato originariamente da maury:

ho provato ma non è successo nulla.



Cioe' ? Cosa hai scritto ? Quali messaggi hai ?

Così non aiuti ad aiutarti ...

Testo quotato

Comunque mi sono dimenticato di dire che come compilatore uso dev-cpp ver. 4.9.9.2 e non ho mai riscontrato errori nell'usare #include<iostream> invece di #include<iostream.h>.



iostream.h e' il modo obsoleto di indicare gli include C++ (e nei messaggi che avevi c'era questa indicazione, l'hai letta?) ... quindi comincia a modificare queste linee e poi parliamo del resto ... se non ti fidi, come leggi in firma, ignora questo messaggio ...

PM Quote
Avatar
maury (Normal User)
Newbie


Messaggi: 10
Iscritto: 26/07/2009

Segnala al moderatore
Postato alle 1:21
Martedì, 28/07/2009
ok ho fatto come dice lei....


questo è il codice del main
#include <allegro>
#include <stdio>
#include <string>
#include <time>
#include <iostream>
#include <windows>
#include <mysql/mysql>
#include "inserimento.h"
int x=100;
int y=240;
BITMAP *immagine, *buffer;
PALETTE colori;
void doppiobuffering()
{
vsync();
blit(buffer, screen, 0, 0, 0, 0, 640, 480);
clear(buffer);
}
int main()
{

allegro_init();
install_keyboard();
set_color_depth(32);
set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);
immagine=load_bitmap("eroe.bmp", colori);
buffer = create_bitmap(640, 480);
clear(buffer);
while (!key[KEY_SPACE]) {
doppiobuffering();
if(key[KEY_UP]){y++; x++;}
if(key[KEY_DOWN]){y--; x++;}
draw_sprite(buffer, immagine, x,y);
ins(x,y);
}
destroy_bitmap(buffer);
destroy_bitmap(immagine);
allegro_exit();
}

END_OF_MAIN ();


e questo è il codice di inserimento.h

void ins(int x, int y){
       MYSQL *sock;  
       sock = mysql_init(0);
       //Nel caso in cui l'inizializzazione non sia andata a buon fine restuituisce un mex di errore
       if (!sock) {  
        /* cout << "Errore durante l'inizializzazione dell'oggetto MYSQL " << endl << mysql_error(sock) << endl;
         system("PAUSE");
         return ;*/
    }
    char *host = "localhost";  //Hostname
    char *user = "root";         //user
    char *pass = "";             //password
    char *db = "demo";          //database
    /*
      Nel caso in cui la connessione non è andata a buon fine
      termino il programma
    */

    if (!mysql_real_connect(sock, host, user, pass, db, 0, NULL,  0)){
         /*cout << "Errore durante la connessione MYSQL " << endl << mysql_error(sock) << endl;
         system("PAUSE");*/
         return;
    }
    char sql[255];
   sprintf(sql,"INSERT INTO coo VALUES (%d,%d)",x,y);
   mysql_query(sock,sql);
   if (mysql_affected_rows(sock) != 1) {
       /*  cout << "Errore durante l'esecuzione della query " << endl << mysql_error(sock) << endl;
         system("PAUSE");*/
         return ;
    }
   mysql_close(sock);
}




mi da questi errori:



\Documents and Settings\Standard\Desktop\2004\prova.cpp C:\Documents and Settings\Standard\Desktop\2004\C windows: No such file or directory.

\Documents and Settings\Standard\Desktop\2004\prova.cpp C:\Documents and Settings\Standard\Desktop\2004\C mysql/mysql: No such file or directory.

1 C:\Dev-Cpp\include\c++\3.4.2\backward\iostream.h:31,               from C:\Documents and Settings\Standard\Desktop\2004\inserimento.h In file included from C:/Dev-Cpp/include/c++/3.4.2/backward/iostream.h:31,               from C:\Documents and Settings\Standard\Desktop\2004\/inserimento.h

6 C:\Documents and Settings\Standard\Desktop\2004\inserimento.h:1,               from C:\Documents and Settings\Standard\Desktop\2004\prova.cpp                  from C:\Documents and Settings\Standard\Desktop\2004\/inserimento.h:1,               from C:\Documents and Settings\Standard\Desktop\2004\prova.cpp

6 C:\Documents and Settings\Standard\Desktop\2004\prova.cpp                  from C:\Documents and Settings\Standard\Desktop\2004\prova.cpp

32:2 C:\Dev-Cpp\include\c++\3.4.2\backward\backward_warning.h #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.

2 C:\Dev-Cpp\include\mysql\mysql.h:57,               from C:\Documents and Settings\Standard\Desktop\2004\inserimento.h In file included from C:/Dev-Cpp/include/mysql/mysql.h:57,               from C:\Documents and Settings\Standard\Desktop\2004\/inserimento.h

6 C:\Documents and Settings\Standard\Desktop\2004\inserimento.h:2,               from C:\Documents and Settings\Standard\Desktop\2004\prova.cpp                  from C:\Documents and Settings\Standard\Desktop\2004\/inserimento.h:2,               from C:\Documents and Settings\Standard\Desktop\2004\prova.cpp

6 C:\Documents and Settings\Standard\Desktop\2004\prova.cpp                  from C:\Documents and Settings\Standard\Desktop\2004\prova.cpp

175 C:\Dev-Cpp\include\mysql\mysql_com.h `SOCKET' does not name a type

339 C:\Dev-Cpp\include\mysql\mysql_com.h `SOCKET' was not declared in this scope

339 C:\Dev-Cpp\include\mysql\mysql_com.h expected primary-expression before "const"

339 C:\Dev-Cpp\include\mysql\mysql_com.h expected primary-expression before "unsigned"

340 C:\Dev-Cpp\include\mysql\mysql_com.h expected primary-expression before "unsigned"

340 C:\Dev-Cpp\include\mysql\mysql_com.h initializer expression list treated as compound expression


e ora...????

Ultima modifica effettuata da maury il 28/07/2009 alle 1:30
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 8:05
Martedì, 28/07/2009
Testo quotato

Postato originariamente da maury:

ok ho fatto come dice lei....



Nel forum ci si da' del tu ...

Per gli include intendevo correggere solo quelle che esistono in C++ ... Fai la prova inserendo gli include in questo ordine (e non usare windows.h ma winalleg.h)

Codice sorgente - presumibilmente C++

  1. #include <allegro.h>
  2. #include <winalleg.h>
  3. #include <cstdio>
  4. #include <string>
  5. #include <time>
  6. #include <iostream>
  7. #include <mysql/mysql>
  8. #include "inserimento.h"



e facci sapere ... non posso provarlo sul PC ...

PM Quote
Avatar
maury (Normal User)
Newbie


Messaggi: 10
Iscritto: 26/07/2009

Segnala al moderatore
Postato alle 11:47
Mercoledì, 29/07/2009
Grazie mille funziona benissimo....
però non capisco dove sbagliavo xk io ho appena finito il terzo anno di ITI, (con indirizzo informatico) e a noi hanno sempre insegnato a includere i file header conosciuti dal c++ in quel modo...
Grazie infinite per l'aiuto..

PM Quote