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++ - Errore SDL_TTF
Forum - C/C++ - Errore SDL_TTF

Avatar
RiccardoG97 (Member)
Pro


Messaggi: 133
Iscritto: 03/01/2012

Segnala al moderatore
Postato alle 11:09
Giovedì, 02/02/2012
Ho creato una piccola applicazione in C++ che dovrebbe mostrare semplicemente una scritta, usando SDL e SDL_ttf.
Compilo e fino a qui tutto ok.
Poi quando provo a eseguire l'applicazione ricevo questo errore:
"Impossibile avviare correttamente l'applicazione (0xc000007b). Fare clic su OK per chiudere l'applicazione."

Il codice è questo:
Codice sorgente - presumibilmente C++

  1. #include "SDL.h"
  2. #include "SDL_ttf.h"
  3.  
  4. SDL_Surface *message = NULL;
  5. SDL_Surface *screen = NULL;
  6. TTF_Font *font = NULL;
  7. SDL_Color textColor = { 255, 255, 255 };
  8.  
  9. int main ( int argc, char* argv[] )
  10. {
  11.         SDL_Init ( SDL_INIT_EVERYTHING );
  12.         TTF_Init();
  13.         font = TTF_OpenFont ( "/Font.ttf", 28 );
  14.         message = TTF_RenderText_Solid ( font, "Il testo che voglio scrivere",  textColor );
  15.         SDL_BlitSurface ( message, NULL, screen, NULL );
  16.         SDL_UpdateRect ( screen, 0, 0, 0, 0 );
  17.         /*
  18.         Tutto il resto del programma
  19.         */
  20.         SDL_Quit();
  21.         return 0;
  22. }



Grazie in anticipo

Ultima modifica effettuata da RiccardoG97 il 02/02/2012 alle 11:10
PM Quote
Avatar
andrex91 (Member)
Pro


Messaggi: 101
Iscritto: 01/05/2009

Segnala al moderatore
Postato alle 14:13
Venerdì, 03/02/2012
Il codice è corretto, l'ho provato e funziona.
Può darsi che non ti apra correttamente il font.
Prova a fare un controllo:
Codice sorgente - presumibilmente Plain Text

  1. TTF_Font* font = NULL;
  2. font = TTF_OpenFont ( "/Font.ttf", 28 );
  3. if( !font ){
  4. //font non aperto correttamente
  5. }



E per sicurezza controlla anche TTF_Init() ( ritorna 0 se inizializzato con successo, -1 altrimenti)

PM Quote
Avatar
anthony015 (Member)
Pro


Messaggi: 116
Iscritto: 20/05/2011

Segnala al moderatore
Postato alle 14:44
Venerdì, 03/02/2012
solitamente l'errore 0xc000007b significa che si sta cercando di eseguire(su un processore a 64 bit) un codice a 32 bit non adeguato per girare su un processore a 64 bit...
a me succedeva quando installai windows xp 32 bit su un processore x64 e cercavo di eseguire determinati programmi(non ricordo quali)...
non so se è questo il tuo caso...

Ultima modifica effettuata da anthony015 il 03/02/2012 alle 16:23
PM Quote
Avatar
RiccardoG97 (Member)
Pro


Messaggi: 133
Iscritto: 03/01/2012

Segnala al moderatore
Postato alle 20:39
Venerdì, 03/02/2012
Anthony015 mi sono informato e difatti è come dici tu. Però provando il programma su un altro pc (32bit) dà un'altro errore:
"Il programma non è destinato all'utilizzo con Windows o contiene un errore."

Andrex91 il codice funziona, si blocca ancora prima di partire...

Se qualcuno sa aiutarmi grazie mille, intanto io continuo a cercare di risolvere il problema...

PM Quote
Avatar
anthony015 (Member)
Pro


Messaggi: 116
Iscritto: 20/05/2011

Segnala al moderatore
Postato alle 22:44
Venerdì, 03/02/2012
potresti cambiare compilatore, oppure passare ad un sistema a 64 bit...

PM Quote
Avatar
RiccardoG97 (Member)
Pro


Messaggi: 133
Iscritto: 03/01/2012

Segnala al moderatore
Postato alle 11:43
Sabato, 04/02/2012
Sono su un sistema a 64 bit e uso Visual C++, mi sembra strano che dia dei problemi.

PM Quote
Avatar
RiccardoG97 (Member)
Pro


Messaggi: 133
Iscritto: 03/01/2012

Segnala al moderatore
Postato alle 14:06
Sabato, 04/02/2012
Sono riuscito a farlo funzionare su un sistema a 32 bit con VisualC++. Il problema stava in una .dll che non era compatibile con il sistema. Ora cercherò la soluzione per farlo funzionare anche in sistemi a 64bit e quando la troverò la posterò. Grazie a tutti :)

PM Quote