Jump to content
  • Advertisement
Sign in to follow this  
Moffia

[SDL] Strange Compiling Error

This topic is 4467 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello everybody! Im pretty new to SDL, so i follow tutorials from Lazy_foo, they are pretty good. However, when i try to compile this, gathered from the 2nd tutorial, i got compile errors:
Quote:
1>------ Build started: Project: SDLLessons, Configuration: Debug Win32 ------ 1>Compiling... 1>main.cpp 1>c:\documents and settings\roy\mijn documenten\visual studio 2005\projects\sdllessons\sdllessons\main.cpp(16) : error C2653: 'stf' : is not a class or namespace name 1>c:\documents and settings\roy\mijn documenten\visual studio 2005\projects\sdllessons\sdllessons\main.cpp(16) : error C2065: 'string' : undeclared identifier 1>c:\documents and settings\roy\mijn documenten\visual studio 2005\projects\sdllessons\sdllessons\main.cpp(17) : error C2146: syntax error : missing ')' before identifier 'filename' 1>Build log was saved at "file://c:\Documents and Settings\roy\Mijn documenten\Visual Studio 2005\Projects\SDLLessons\SDLLessons\Debug\BuildLog.htm" 1>SDLLessons - 3 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
I already looked there, but i can't find the problem. Here is the source for any need:
//The headers
#include "SDL/SDL.h"
#include <string>
using namespace std;

//Attributes of the screen
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
const int SCREEN_BPP = 32;

//Surfaces that will be used
SDL_Surface *message = NULL;
SDL_Surface *background = NULL;
SDL_Surface *screen = NULL;

//Load the images
SDL_Surface *load_image(string filename)
{
	//Temporary storage for the image that's loaded
	SDL_Surface* loadedImage = NULL;
	
	//The optimized image that will be used
	SDL_Surface* optimizedImage = NULL;
	
	//Load the image
	loadedImage = SDL_LoadBMP(filename.c_str());

	if(loadedImage != NULL)
	{
		//Optimized Image Creating
		optimizedImage = SDL_DisplayFormat(loadedImage);
		SDL_FreeSurface(loadedImage);
	}
	
	return optimizedImage;
}

void apply_surface(int x, int y, SDL_Surface* source, SDL_Surface* destination)
{
	//Make a temporary rectangle to hold the offsets
	SDL_Rect offset;
	
	//Give the offsets to the rectangle
	offset.x = x;
	offset.y = y;
	
	//Blit the surface
	SDL_BlitSurface(source, NULL, destination, &offset);
}

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

	//Set up the screen
	screen = SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE );
	
	//If there was in error in setting up the screen
	if(screen == NULL)
	{
		return 1;
	}

	//Set the window caption
	SDL_WM_SetCaption( "Hello World blaat", NULL );

	//Load the images
	message = load_image("hello_world.bmp");
	background = load_image("background.bmp");

	//Apply the background to the screen
	apply_surface(0, 0, background, screen);

	//Apply the message to the screen
	apply_surface(180, 140, message, screen);

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

	//Wait 2 seconds
	SDL_Delay(2000);

	//Free the surfaces
	SDL_FreeSurface(message);
	SDL_FreeSurface(background);
	
	//Quit SDL
	SDL_Quit();
	
	//Return
	return 0;
}

I hope anyone can help Moffia [Edited by - Moffia on June 26, 2006 2:00:41 AM]

Share this post


Link to post
Share on other sites
Advertisement
1° Post the real code next time, preferably using [source] tags.

2° Use std::string instead of stf::string.

Share this post


Link to post
Share on other sites
The code you posted seems to have been fixed (by means of a 'using', but I forgive you) - is there still something borking?

Share this post


Link to post
Share on other sites
but the problem is, i didnt use any stf in the code. i use the using namespace std, and also tried std:: for the needed things.
but i still get the problem. thats why i think it's weird and posted the source-code to let you guys have a check.

oh and btw, sorry about the wrong form, im used to use [.code]code[./code]

Share this post


Link to post
Share on other sites
Then that must not be the source file your compiler is complaining about. Double check to make sure you did not add another source file to the project or anything. What compiler are you using?

Share this post


Link to post
Share on other sites
I got a similar problem, and also, i'm pretty noob about SDL.

I already did everything to set up SDL and OpenGL on VisualC++ 7 (aka Visual Studio 2003), but still, the compiler trows me this error

Quote:
c:\Documents and Settings\Martha\My Documents\Visual Studio Projects\Pruebas SDL\Pruebas SDL.cpp(26): fatal error C1010: unexpected end of file while looking for precompiled header directive



Here is the code


#include <SDL.h>
#include <stdio.h>

int main(int argc, char argv[])
{

printf("Initializing SDL.\n");

/* Initialize defaults, Video and Audio */
if((SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO)==-1)) {
printf("Could not initialize SDL: %s.\n", SDL_GetError());
exit(-1);
}

printf("SDL initialized.\n");

printf("Quiting SDL.\n");

/* Shutdown all subsystems */
SDL_Quit();

printf("Quiting....\n");

exit(0);
}



I had already double cheked everything but I can't find were the problem is, and I'm pretty positive is becuz the header file is not initialized correctly, or something like that

Share this post


Link to post
Share on other sites
Quote:
Original post by Kristen
I got a similar problem, and also, i'm pretty noob about SDL.

I already did everything to set up SDL and OpenGL on VisualC++ 7 (aka Visual Studio 2003), but still, the compiler trows me this error

Quote:
c:\Documents and Settings\Martha\My Documents\Visual Studio Projects\Pruebas SDL\Pruebas SDL.cpp(26): fatal error C1010: unexpected end of file while looking for precompiled header directive



Here is the code

*** Source Snippet Removed ***

I had already double cheked everything but I can't find were the problem is, and I'm pretty positive is becuz the header file is not initialized correctly, or something like that


I dont use visual c, but I know of the error. You need to either include something named similar to stdafx.h first, or disable precompiled headers.

cheers.

Share this post


Link to post
Share on other sites
@Kristen: Instead of using <stdio.h> you should be using <cstdio>. It's the newer and more standard one. Don't know if it will help though.

Share this post


Link to post
Share on other sites
Well, the thing of the precompiled headers worked pretty well, but now, is the linker the one giving me problems

Quote:

Pruebas SDL error LNK2019: unresolved external symbol _SDL_main referenced in function _main


I already set on the command line of the linker to include SDL.lib and SDLmain.lib, any other option?

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!