CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C] Problème avec la SDL

Pseudo supprimé
Pseudo supprimé 05 août 2012 à 22:35:38

Bonjour.

Je suis un jeune programmeur, et ayant suivit les si connus cours du Site du Zéro, je suis arrivé au chapitres sur la SDL.

A partir de là, j'ai décidé de mon débrouillé seul, en suivant d'autres sources, et en étudiant les docs de la bibliothèque SDL.

Le problème est le suivant: j'ai créé un début de programme, la compilation se passe sans soucis, sauf qu'en j'exécute mon programme, cela affiche une console vide (sauf les lignes indiquant que tout c'est bien passé). Si je lance manuellement le programme avec l'exécutable, j'ai une fenêtre qui s'ouvre puis se referme à la vitesse de la lumière ! :(

Je précise aussi que j'ai déjà réussis à ouvrir une fenêtre normalement, sauf que quand je fesais compiler puis exécuter le programme, la console était toujours là ! :(

Que dois-je faire ?

Merci d'avance !

Pseudo supprimé
Pseudo supprimé 05 août 2012 à 22:38:06
  • décidé de ME
  • quand
  • je compilais puis exécutais

La fatigue... :(

Pseudo supprimé
Pseudo supprimé 05 août 2012 à 23:05:18

Je n'ai pas assez d'expériences pour t'aider mais pourrais-tu fournir le code que tu as produit ?

Tu parles de le SDL, donc je suppose que tu veux travailler avec une fenêtre. Mais à quel endroit du tuto es tu rendu ?
Si c'est pour le jeu sobokan, ça ne serait pas un problème de boucle ?

Pseudo supprimé
Pseudo supprimé 05 août 2012 à 23:15:22

Je viens d'avoir du nouveau à l'instant !

J'ai redonner les liens des différentes partie de la SDL que j'utilise pour le moment (la SDL et SDL_image) et cela m'affiche, lors de la compilation: cannot find -lSDLmain ! :(

Pseudo supprimé
Pseudo supprimé 05 août 2012 à 23:21:05

Vu comme ça, j'ai l'impression que tu essaies de créer un projet SDL mais que tu as créé un projet console. Je me trompe ?

Pseudo supprimé
Pseudo supprimé 05 août 2012 à 23:22:11

Ou alors, désolée du double poste... tu as mal installé la SDL

Pseudo supprimé
Pseudo supprimé 06 août 2012 à 10:49:57

C'est probablement une mauvaise installation de la SDL. Le problème c'est que je n'arrive pas à la réinstaller correctement en partant d'un vieux projet ! :(

evillz
evillz
Niveau 10
06 août 2012 à 15:06:14

Y faut lier les lib lSDLmain.a et lSDL_Image.a.
Tu vas dans build options, linker settings et tu ajoutes les librairie. (pour CodeBlocks)
Elles devraient se trouver dans le dossier lib du dossier SDL et SDL_Image.

cmoinsmoins
cmoinsmoins
Niveau 7
06 août 2012 à 15:38:57

N'oublies pas de créer un projet SDL et non pas un proj console !
Et si tu veux executer a partir du .exe, inclus la lib SDL.dll, et les fichiers utilisés par ton programme !

Pseudo supprimé
Pseudo supprimé 06 août 2012 à 16:14:41

Merci à tous pour vos réponses !

Je vais essayer toutes les solutions apportés par vos commentaires et je viens vous dire le résultat juste après ! :-)

Pseudo supprimé
Pseudo supprimé 06 août 2012 à 17:04:13

Bonne nouvelle ! Après plusieurs bidouillages: la compilation fonctionne parfaitement, il n'y a AUCUNE erreurs !

Le problème, c'est que quand je fais compiler et tester, cela m'affiche toujours cette console vide (j'ai recommencer un projet en SDL pour être sûr que je ne me suis pas trompé !) et quand je teste le .exe, cela m'affiche toujours cette fenêtre qui apparait puis disparais à la vitesse de la lumière ! :(

Voici mon main.c (j'ai repris une bonne partie du code du site du zéro pour les test):

  1. ifndef MAIN_H
  1. define MAIN_H

#include <stdlib.h>

#include <stdio.h>

#include <string.h>

#include <time.h>

#include <SDL/SDL.h>

#include <SDL_image.h>

void pause();

  1. endif

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

SDL_Surface *ecran = NULL;

SDL_Surface *iconeFenetre = IMG_Load("iconeFenetre.bmp");

/* Variables SDL:

ecran = pointeur qui contient l'adresse de la surface de l'écran de jeu

icone1 = pointeur qui contient l'adresse de l'icône de la fenêtre

*/

if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_AUDIO) == -1) // Initialisation de la SDL

{

fprintf(stderr, "Erreur d'initialisation de la SDL");

exit(EXIT_FAILURE);

}

SDL_SetColorKey(iconeFenetre, SDL_SRCCOLORKEY, SDL_MapRGB(iconeFenetre->format, 255, 0 , 0)); // Transparence ajouté à l'icône de la fenêtre (transparence sur le rouge)

SDL_WM_SetIcon(iconeFenetre, NULL); // Chargement de l'icône de la fenêtre

ecran = SDL_SetVideoMode(800, 400, 32, SDL_HWSURFACE | SDL_DOUBLEBUF); // Chargement de l'écran de jeu

SDL_WM_SetCaption("Test", NULL); // Changement du titre de la fenêtre

pause();

SDL_Quit();

return EXIT_SUCCESS;

}

void pause()
{

int continuer = 1;

SDL_Event event;

while (continuer)

{

SDL_WaitEvent(&event);

switch(event.type)

{

case SDL_QUIT:

continuer = 0;

}

}

}

Pseudo supprimé
Pseudo supprimé 06 août 2012 à 17:11:29

Et oui, c'est encore moi ! :(

C'est bon, la fenêtre s'ouvre maintenant: cela était dû au fait que l'icône que je voulais charger pour la fenêtre était corrompu, cela était indiqué nulle part et je ne sais pas d'où sa sort.

Mais par contre J'AI TOUJOURS CETTE FOUTU CONSOLE !! :ouch:

Elle s'affiche quand je compile puis exécute, et elle s'affiche aussi quand je teste l'exécutable (sauf que cette fois-ci elle ne contient rien, vraiment rien du tout).
Elle s'affiche en complément de ma fenêtre.

cmoinsmoins
cmoinsmoins
Niveau 7
06 août 2012 à 17:25:46

compile en mode Release pour supprimer a console.

cmoinsmoins
cmoinsmoins
Niveau 7
06 août 2012 à 17:27:27

Pour supprimer la console a partir de l'exe, tu vas dans le dossier bin/Release (mais il faut avoir compilé en Release d'abbord). Du moins avec Code::Blocks, je ne sais pas avec les autes IDE.

Désolé du double post.

Pseudo supprimé
Pseudo supprimé 06 août 2012 à 17:32:48

D'accord ! Merci ! :-d

C'est sympa de pas l'avoir dis dans les tutos sa ! Le Site du zéro, c'est peut-être bien utile, mais je trouve qu'il manque certains détails ! :(

Sinon, j'en profite pour demander: on peux inclure ce qu'on veux comme fichier avec les fichier ressource ? C'est-à-dire que si je ne veux pas fournir un dossier supplémentaire contenant les images du programme, je peux les inclure dans mon fichier ressource ?

godrik
godrik
Niveau 30
06 août 2012 à 17:38:44

me tton code sur un wall comme http://pastebin.com/ plutot que sur le forum. Ca permet de l'avoir bien formater comme il faut.

Pseudo supprimé
Pseudo supprimé 06 août 2012 à 17:57:03

D'accord, je ne connaissais pas ce site, je ne l'oublie pas ! :-)

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment