000
01.09.2007, 21:28 Uhr
~Roland Render
Gast
|
moin
ich bitte alle mods dieses Forums dieses thema solange nicht ins Grafikprogrammierung-Forum zu verschieben, bis ich eine Lösung für mein Problem hab.
ich hab das Hello World Programm von SDL:
C++: |
#include "SDL/SDL.h" #include <string>
//The attributes of the screen const int SCREEN_WIDTH = 640; const int SCREEN_HEIGHT = 480; const int SCREEN_BPP = 32;
//The surfaces that will be used SDL_Surface *message = NULL; SDL_Surface *background = NULL; SDL_Surface *screen = NULL;
SDL_Surface *load_image( std::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 nothing went wrong in loading the image if( loadedImage != NULL ) { //Create an optimized image optimizedImage = SDL_DisplayFormat( loadedImage ); //Free the old image SDL_FreeSurface( loadedImage ); } //Return the optimized image 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 an error in setting up the screen if( screen == NULL ) { return 1; } //Set the window caption SDL_WM_SetCaption( "Hello World", 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( 250, 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; }
|
.. wenn ich es in Visual C++ Express kompiliere, kommt genau das was ich will. Aber wenn ich in den DEBUG-Ordner meines Projektverzeichnis gehe und die Anwendung ausführe, kommt nur ein Fenster mit schwarzem Hintergrund :mad:
kann mir jemand bitte helfen?
Außerdem hab ich noch ein zweites problem: Ich kann es nicht als Release Anwendung verwenden, nur debug :S ich will mein projekt RELEASE machen und dabei STATISCH LINKEN.
Diese Seite hab ich durchgearbeitet:
http://lazyfoo.net/SDL_tutorials/lesson01/windows/msvsnet05e/index.php
Alles was da steht hab ich für Debug gemacht(DEBUG geht ja bei mir, aber ohne "Laufzeitbibliothek = statisch linken" wegen einem Kompilieruungsfehler..) , RELEASE funzt bei mir nicht, obwohl ich die selben einstellungen von meinem Link vom Tutorial gewählt hab, wie bei DEBUG.
Bitte um hilfe
Liebe Grüße Roland Render |