Bonjour,
Je me tourne vers vous en effet j'essaye depuis plusieurs jours à avoir un exe qui marche pour mon programme en SDL.
Apres avoir compilé sous CB et windows j'ai facilement eu mon .exe qui marche parfaitement.
Mais avec Xcode c'est différent, J'ai trouvé le problème qui vient par exemple de SDL_LoadBMP mais c'est la même pour IMG_load
Je vous donne un petit bout de code qui marche parfaitement et sous CB Xcode en effet il est tres simple il charge une image et l'affiche.
Mais lorsque je vais dans le dossier debug de xcode pour executé l'executable crée la la fenetre se charge en noir et pas d'image(en effet dans le terminal je vois que image est resté a NULL avec le exit(-1), qui s'exécute tout de suite si je l'enlève la fenêtre reste noir et ne se ferme pas du coup(l'image est bien a coté de l'ex) .
J'ai tout essayé en mettant SDL_main ect a coté du projet rien ni fait, tout les framework , les .h inimaginable j'en suis arrivé a avoir mis 50mo de ressources de ce type sans succès. j'ai mis vraiment tout ce que je pouvais dans le dossier et je n'arrive pas a savoir pourquoi cela ne marche pas. (Alors que sous windows l'exe marche parfaitement avec tout les dll déposé a coté)
Voici un code très basique qui marche parfaitement
Merci de votre aide car la je ne sais plus quoi faire (
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 #include <stdlib.h> #include <stdio.h> #include <SDL/SDL.h> void pause(); int main(int argc, char *argv[]) { SDL_Rect pos; pos.x=0; pos.y=0; SDL_Surface *ecran=NULL; SDL_Surface *s=NULL; SDL_Init(SDL_INIT_VIDEO); // Initialisation de la SDL ecran=SDL_SetVideoMode(700, 700, 32, SDL_HWSURFACE); // Ouverture de la fenêtre s=SDL_LoadBMP("image.bmp"); if(s==NULL) exit(-1); SDL_BlitSurface(s,NULL,ecran,&pos); SDL_Flip(ecran); pause(); // Mise en pause du programme SDL_Quit(); // Arrêt de la SDL return EXIT_SUCCESS; // Fermeture du programme } void pause() { int continuer = 1; SDL_Event event; while (continuer) { SDL_WaitEvent(&event); switch(event.type) { case SDL_QUIT: continuer = 0; } } }
Partager