gelatine_velue | Bon jour a tous,
J'ai reproduit un problème que j'ai avec ce petit programme de test plus bas. Il ne fait rien d'autre que d'utiliser deux librairies et afficher une fenêtre SDL avec un pixel rouge. Je sais, passionant.
J'utilise log4cplus comme logger. Si je commente les deux lignes 32 et 33 plus bas, alors tout se passe nickel. Si je les exécute (ou n'importe quoi relatif au logger semble t'il, comme une simple déclaration de variable), alors ma fenêtre SDL ne s'affiche plus bien que je n'aie aucune erreur. A la place dans la console d'eclispe cdt j'ai un message du genre [New thread: 0x8168d] et c'est tout.
Si vous voyez ce qui pourrait clocher hésitez pas, google ne me retourne rien.
Code :
- #include <stdlib.h>
- #include <SDL/SDL.h>
- #include <SDL/SDL_endian.h> /* Used for the endian-dependent 24 bpp mode */
- #include "Screen.h"
- #include <log4cplus/logger.h>
- #include <iomanip>
- using namespace log4cplus;
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
- #include "iniparser.h"
- int main(int argc, char **argv) {
- dictionary * ini ;
- char * ini_name ;
- if (argc<2) {
- ini_name = "twisted.ini";
- } else {
- ini_name = argv[1] ;
- }
- ini = iniparser_load(ini_name);
- iniparser_dump(ini, stdout);
- iniparser_freedict(ini);
- Logger root = Logger::getRoot();
- Logger log_1 = Logger::getInstance(LOG4CPLUS_TEXT("test.log_1" ));
- SDL_Surface *screen;
- screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);
- if ( screen == NULL ) {
- fprintf(stderr, "Impossible de passer en 640x480 en 16 bpp: %s\n", SDL_GetError());
- exit(1);
- }
- while(true)
- {
- SDL_Event event;
- SDL_WaitEvent(&event);
- switch (event.type) {
- case SDL_KEYDOWN:
- printf("La touche %s a été préssée!\n",
- SDL_GetKeyName(event.key.keysym.sym));
- //SDL_Quit();
- break;
- case SDL_QUIT:
- exit(0);
- }
- Screen::DrawPixel(screen,20,20,200,10,10);
- }
- }
|
Message édité par gelatine_velue le 04-02-2011 à 23:34:33
|