Jump to content

  • Log In with Google      Sign In   
  • Create Account


Microsoft Windows, SDL, and closing a Window @_@;


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
2 replies to this topic

#1 That One Guy   Members   -  Reputation: 100

Like
0Likes
Like

Posted 29 December 2011 - 12:56 PM

Hi... After having to install Windows 7, I've set up Codeblocks with MinGW and SDL. Now, then, I've been trying to get some things working. I've gotten a window open (just a simple, stupid test program) and can keep it open, but it won't close unless I use Task Manager to force it shut. I've tried everything I could think of and I never had this particular problem on Linux.

It closes on its own, like any other window, if I don't have a loop to keep it open, but with the loop? Complete and total failure to terminate.

#include "SDL.h"
#include <stdio.h>
#include <stdlib.h>
#define WINDOW_WIDTH 640
#define WINDOW_HEIGHT 480
SDL_Surface *window;
union SDL_Event event;
int main(int argc,char *argv[]){
  if(SDL_Init(SDL_INIT_VIDEO)!=0){
	printf("Unable to initialise SDL: %s\n",SDL_GetError());
	  return 1;
	  atexit(SDL_Quit);
	return 1;
  }
  SDL_WM_SetCaption("Windows SDL Test",NULL);
  window=SDL_SetVideoMode(WINDOW_WIDTH,WINDOW_HEIGHT,32,SDL_DOUBLEBUF);
  if(window==NULL){
	printf("Unable to set video mode: %s\n",SDL_GetError());
	return 1;
  }
  while(1){
	while(SDL_WaitEvent(&event)==0){
	  switch(event.type){
		case SDL_QUIT:
		SDL_Quit();
	  }
	}
  }
}

As with other code I've shown on this site, there are things I wouldn't want to do in a program I plan to release. I can't move onto the next bit of SDL testing on Windows until I get this issue resolved, though, and searching for hours has revealed nothing helpful. The outer loop is there because, without it, the window closes instantly.

Sponsor:

#2 SiCrane   Moderators   -  Reputation: 9124

Like
0Likes
Like

Posted 29 December 2011 - 01:02 PM

SDL_Quit() doesn't cause the program to end. It only performs cleanup for SDL. If you want to end the program you can return from the main() function, call exit() or do something similar.

#3 That One Guy   Members   -  Reputation: 100

Like
0Likes
Like

Posted 29 December 2011 - 01:41 PM

As I stated, I've tried multiple things. The first I tried was 'return 0;' which didn't work, and exit() was also tried. I've tried them separately and together, as well as an atexit() thing which also did nothing.

EDIT: Nevermind, I just noticed my typo (aka: (&event)==0) ) and a couple of other issues. I fixed it, lol




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS