SDL_ttf Fehler?



  • #include <iostream>
    using namespace std;
    
    #include "SDL.h" 
    #include "SDL_ttf.h" 
    
    TTF_Font     *pFont;//der Font 
    SDL_Color     color;//Textfarbe 
    SDL_Surface  *screen;//der Bildschirm 
    SDL_Surface  *textsurface;//Surface des Textes 
    
    int main(void) 
    { 
        //SDL initialisieren 
        if(SDL_Init(SDL_INIT_VIDEO) < 0) 
        { 
          //Fehler! 
          fprintf(stderr,"Fehler: konnte SDL nicht initialisieren: %s\n",SDL_GetError()); 
          return 1; 
        } 
    
        //SDL_ttf initialisieren 
        if(TTF_Init() < 0) 
        { 
          //Fehler! 
          fprintf(stderr,"Fehler: konnte SDL_ttf nicht initialisieren: %s\n",TTF_GetError()); 
          SDL_Quit(); 
          return 2; 
        } 
    
        //Font laden 
        pFont=TTF_OpenFont("C:/winnt/Fonts/Verdana.ttf",18); 
    
        if(!pFont) 
        { 
               //Fehler! 
          fprintf(stderr,"Fehler: konnte Font nicht laden: %s\n",TTF_GetError()); 
          return 3; 
        } 
    
        //Font rendern 
        color.r=color.g=color.b=255;//weißer Text 
        textsurface=TTF_RenderFont_Solid(pFont,"Hallo SDL_ttf!",color); 
        if(!textsurface) 
        { 
          //Fehler! 
          fprintf(stderr,"Fehler: konnte Font nicht rendern: %s\n",TTF_GetError());    
        } 
    
        //Text auf Bildschirm packen 
        SDL_BlitSurface(textsurf,0,screen,0); 
    
        //Text sichtbar machen 
        SDL_Flip(screen); 
    
        //auf Keyevent warten und beenden 
        SDL_Event event; 
    
        while(true) 
        { 
          SDL_WaitEvent(&event); 
          if(event.type==SDL_KEYDOWN) 
              break; 
        } 
    
        return 0; 
    }
    

    Beis diesem Programm bekomme ich folgende Fehlermeldungen die ich entweder nicht verstehe oder deren Lösung ich nicht weiß 😞
    Hättet ihr vieleicht ne Idee wie ich das richtig mache?

    Fehlermeldungen:

    c:\programme\microsoft visual studio\myprojects\ttf test\ttf test.cpp(40) : error C2065: 'TTF_RenderFont_Solid' : nichtdeklarierter Bezeichner
    c:\programme\microsoft visual studio\myprojects\ttf test\ttf test.cpp(40) : error C2440: '=' : 'int' kann nicht in 'struct SDL_Surface *' konvertiert werden
    Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
    c:\programme\microsoft visual studio\myprojects\ttf test\ttf test.cpp(4 : error C2065: 'textsurf' : nichtdeklarierter Bezeichner

    mfg Frusciante



  • Hm, hab noch nie was mit SDL/ttf gemacht, aber haste mal nachgekuckt ob/wie denn TTF_RenderFont_Solid im SDL_ttf.h deklariert ist?
    Dass er diesen Ausdruck nicht kennt deutet ja drauf hin, dass was mit dem ttf-Header nicht stimmt (bze. nicht gefunden wird oder was auch immer)...
    Es sei denn, den Ausdruck gibts gar nicht.. 🙂 Aber eben, kenn SDL/ttf nicht..

    Ehm, und sag mal, hast ja noch Schreibfehler drin.. TTF_RenderFont_Solid einfach falsch geschrieben?...



  • Hab die Fehler gefunden, aber trotzdem danke. Ich habe einmal Surf anstat Surface geschrieben und es heißt Text nicht Font 🙂


Anmelden zum Antworten