3 Replies - 410 Views - Last Post: 07 February 2012 - 11:37 PM Rate Topic: -----

Topic Sponsor:

#1 Catagen  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 4
  • Joined: 07-February 12

c++/SDL error

Posted 07 February 2012 - 02:30 PM

Hello. I'm new to c++ and SDL (and also this site) but i started to make a program from a tutorial and i get 2 errors i can't solve.

1. error: expected '}' at end of input
2. error: a function-definition is not allowed here before '{' token|

Please help me! :helpsmilie:


#include "SDL.h"
#include <string>

int main( int argc, char* args[] )
{

    const int S_W = 640;
    const int S_H = 480;
    const int S_B = 8;


    //The images
    SDL_Surface *message = NULL;
    SDL_Surface *background = NULL;
    SDL_Surface *screen = NULL;

    SDL_Surface *load_image( std::string filename )
    {
        SDL_Surface* loadedImage = NULL;

        SDL_Surface* optimizedImage = NULL;

        loadedImage = LoadBMP ( oskar.bmp );

    if( loadedImgae !=NULL )
    {
     optimizedImage = SDL_DisplayFormat ( loadedImage );

     SDL_FreeSurface ( loadedImage );
    }
    return optimizedImage;
    }

    void apply_surface( int x, int y, SDL_Surface* source, SDL_Surface* destination )
    {
        SDL_Rect offset;

        offset.x = x;
        offset.y = y;

        SDL_BlitSurface( source, NULL, destination, &offset );
    }

    int main( int argc, char* args[] )
    {
        if( SDL_Init( SDL_INIT_EVERYTHING ) == -1 )
        {
            return 1;
        }

        screen = SDL_SetVideoMode( S_W, S_H, S_B, SDL_SWSURFACE );

        if( screen == NULL )
        {
            return 1;
        }

        SDL_WM_SetCaption( "Oskar är bög", NULL );

        message = load_image( "hello.bmp" );
        background = load_image( "background.bmp" );

    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, message, screen );

        if( SDL_Flip( screen ) == -1 )
    {
        return 1;
    }

        SDL_Delay( 2000 );

        SDL_FreeSurface( message );
        SDL_FreeSurface( background );

        SDL_Quit();

        return 0;
    }
}




Is This A Good Question/Topic? 0
  • +

Replies To: c++/SDL error

#2 r.stiltskin  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 1812
  • View blog
  • Posts: 4,891
  • Joined: 27-December 05

Re: c++/SDL error

Posted 07 February 2012 - 02:45 PM

Please post the complete, exact error messages that your compiler is reporting. They provide helpful information such as the specific lines involved, that make it much easier to diagnose the problem(s).
Was This Post Helpful? 0
  • +
  • -

#3 jimblumberg  Icon User is offline

  • member icon

Reputation: 1892
  • View blog
  • Posts: 5,681
  • Joined: 25-December 09

Re: c++/SDL error

Posted 07 February 2012 - 02:49 PM

You can not define a function inside another function. You also have two main() functions, there can be one and only one function named main(). I suggest that you download and study the following link: C++ Language tutorial. Read at least the first 4 or 5 chapters. Pay particular attention to the section titled: Structure of a program.

Jim
Was This Post Helpful? 0
  • +
  • -

#4 Catagen  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 4
  • Joined: 07-February 12

Re: c++/SDL error

Posted 07 February 2012 - 11:37 PM

Okay, thanks for help Jim. :bigsmile: I will try the tutorials you linked!
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1