tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
580
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Sascha1986 Sascha1986 ist offline Grünschnabel
    Registriert seit
    Jun 2011
    Beiträge
    1
    Also ich hab folgendes Problem und bin total überfragt, außerdem noch ziemlicher Anfänger.

    Ich versuche in meinem Programm das ich in VS 2010 schreibe, die SDL_TTF.lib einzubinden. Ich habe das Include-Verzeichnis richtig angeben und auch das Lib-Verzeichnis, außerdem hab ich auch die benötigten Libs im Linker. SubSystem ist Windows und Laufzeitbib ist auf Multithreaded_DLL(/MD). Desweitern sind alle dlls in meinem Projekt-Ordner. Hatte auch beim Einbinden von SDL_image.lib keine Probleme.

    mein Programmcode sieht wie folgt aus:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    
    #include <SDL.h>
    #include <string>
    #include <SDL_ttf.h>
    #include <SDL_image.h>
     
    const int SCREEN_WIDTH = 640;
    const int SCREEN_HEIGHT = 480;
    const int SCREEN_BPP=32;
     
    SDL_Surface* message = NULL;
    SDL_Surface* character = NULL;
    SDL_Surface* background = NULL;
    SDL_Surface* screen = NULL;
    TTF_Font* font = NULL;
    SDL_Color textColor ={255,255,255};
     
    SDL_Event event;
     
    SDL_Surface* load_Image(std::string filename)
    {
        SDL_Surface* loadedImage = NULL;
        SDL_Surface* optimizedImage = NULL;
     
        loadedImage = IMG_Load(filename.c_str());
     
        if(loadedImage != NULL)
        {
            optimizedImage = SDL_DisplayFormat(loadedImage);
            SDL_FreeSurface(loadedImage);
        }
     
        if(optimizedImage!=NULL)
        {
            Uint32 colorkey = SDL_MapRGB(optimizedImage->format, 0,0xFF,0xFF);
            SDL_SetColorKey(optimizedImage,SDL_SRCCOLORKEY,colorkey);
        }
        
        return optimizedImage;
    }
     
    void apply_surface(int x, int y,SDL_Surface* source,SDL_Surface* destination)
    {
        SDL_Rect offset;
        offset.x = NULL;
        offset.y = NULL;
     
        SDL_BlitSurface(source,NULL,destination,&offset);
    }
     
    bool init()
    {
        if(SDL_Init(SDL_INIT_EVERYTHING)==-1)
        {
            return false;
        }
     
        screen = SDL_SetVideoMode(SCREEN_WIDTH,SCREEN_HEIGHT,SCREEN_BPP,SDL_SWSURFACE);
     
        if(screen==NULL)
        {
            return false;
        }
     
        if(TTF_Init()==-1)
        {
            return false;
        }
     
        SDL_WM_SetCaption("Testspiel",NULL);
     
        return true;
    }
    bool load_files()
    {
        character = load_Image("figur.png");
        background =load_Image("background.png");
        font = TTF_OpenFont("ARIAL.ttf",28);
     
        if(character == NULL)
        {
            return false;
        }
     
        if(background == NULL)
        {
            return false;
        }
     
        if(font == NULL)
        {
            return false;
        }
        
     
        return true;
    }
     
    void clean_up()
    {
        SDL_FreeSurface(character);
        SDL_FreeSurface(message);
        SDL_FreeSurface(background);
        TTF_CloseFont(font);
        TTF_Quit();
        SDL_Quit();
    }
     
     
    int main(int argsc, char*args[])
    {
        bool quit = false;
     
        if(init()==false)
        {
            return 1;
        }
     
        if(load_files()==false)
        {
            return 1;
        }
     
        message = TTF_RenderText_Solid(font,"Hey, I'm a Spaceship!",textColor);
     
        if(message==NULL)
        {
            return 1;
        }
     
        apply_surface(0,0,background,screen);
        apply_surface( 320, 0, background, screen );
        apply_surface( 0, 240, background, screen );
        apply_surface( 320, 240, background, screen );
        apply_surface( 180, 140, character, screen );
        apply_surface( 0, 150, message, screen );
     
        if(SDL_Flip(screen)==-1)
        {
            return 1;
        }
     
        while(quit==false)
        {
            while(SDL_PollEvent(&event))
            {
                if(event.type==SDL_QUIT)
                {
                    quit = true;
     
                    clean_up();
                    return 0;
                }
            }
        }
    }

    Und der Fehler beim Kompilieren ist der folgende:

    LINK : fatal error LNK1104: Datei "#include \SDL_ttf.h\.obj" kann nicht geöffnet werden.

    Ich wäre echt für jede Hilfe dankbar, bin ziemlich überfragt

    PS:Hab Bilder der Include, Lib und Linker Einstellungen und des Ordners E:\SDL-1.2.14\include und lib angehängt!
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Fehler beim Kompilieren nach dem Einbinden von SDL_TFF-lib-und-include.jpg   Fehler beim Kompilieren nach dem Einbinden von SDL_TFF-linker-und-ordner.jpg  

    Geändert von Sascha1986 (12.06.11 um 00:01 Uhr)
     

  2. #2
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.506
    Hi und Willkommen bei tutorials.de

    Ein paar Hinweise zum Forum: Es gibt auch einen eigenen Bereich für C und C++, statt "Sonstige Sprachen".
    http://www.tutorials.de/c-c

    Und Code, vor allem in solchen Mengen, schreibst du in Zukunft am besten in die Codetags.
    Generell so:
    [code]...[/code]
    Für bestimmte Sprachen gibt es aber auch angepasste mit Highlighting etc. Für C bzw. C++:
    [cpp]...[/cpp]

    Zum Fehler: Der hat wenig mit dem eigentlichen Code zu tun, eher mit dem Projekt, seinen Einstellungen und Abhängigkeiten.

    Mach am besten aus dem gesamten Ordner eine Zip-Datei und lad sie hier rauf (geht direkt hier im Forum).
    Oder stell Screenshots von der Dateiliste links und den Linkereinstellungen rein (Bilder auch hier im Forum direkt möglich).

    Gruß
     

  3. #3
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Hi.

    Anscheinend hast du irgendwo in den Linkereinstellungen angegeben, das eine Datei namens "#include \SDL_ttf.h\.obj" gelinkt werden soll.

    Hast du denn das Problem beim Release und Debug Build?

    Häng bitte mal die .vcxproj Datei an.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. Fehler beim Kompilieren
    Von grisu2611 im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 13.01.09, 12:05
  2. Antworten: 0
    Letzter Beitrag: 10.07.08, 16:29
  3. Fehler beim PHP kompilieren
    Von Katharsis Freak im Forum Linux & Unix
    Antworten: 4
    Letzter Beitrag: 01.07.08, 13:37
  4. Fehler beim kompilieren
    Von Nugorra im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 09.10.07, 07:43
  5. Fehler beim Kompilieren
    Von Sephiroth the Second im Forum Visual Basic 6.0
    Antworten: 4
    Letzter Beitrag: 25.03.04, 10:34