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

Question SDL ( load bmp , font , heade

JeanYvesYves
JeanYvesYves
Niveau 10
09 février 2005 à 16:54:44

bizarre...
Honnetement, je ne connais pas le débugger de DevC++, je ne connais que celui de Visual.

Mais un seg fault dans SDL, c´est souvent du a une surface qui n´a pas été initialisée, donc ça renvoie NULL, et tu essaies d´utiliser cette variable par la suite :
controle tous tes codes de retour...

jejej
jejej
Niveau 9
09 février 2005 à 17:03:11

Pff , la de toute facon je me rends compte qu´en écrivant Img , & , ou *Img , mon code compile tjs parfaitement ( et plante tjs aussi bien )

ce dans le " nom " de la fonction ( SDL_Surface Img == SDL_Surface *Img == SDL_Surface & ) ou plus tard dans la fonction . .. je crois que mon compilo est mort la , ca me saoule un peu :)

je vais commencer un autre projet tiens :)

ou faire mes devoirs . ..

JeanYvesYves
JeanYvesYves
Niveau 10
09 février 2005 à 17:04:42

lol ! faut po se décourager comme ça, wall moi tes fichiers.

jejej
jejej
Niveau 9
09 février 2005 à 17:08:17

si tu veux . ..

le . cpp
http://rafb.net/paste/results/BtEgRY29.html

et le . h
http://rafb.net/paste/results/Cz9oox57.html

mais je n´ai presque rien change par rapport a la precedente version , juste un passage de l´initialisation du . cpp au header . ..

Ptival
Ptival
Niveau 10
09 février 2005 à 17:12:21

Bah c´est n´importe quoi ton header regarde :

void AffichageTout( SDL_Surface *img , int x , int y , SDL_Surface *bg )
{
SDL_Rect Machin;
Machin.x = x;
Machin.y = y;

/ / Affichage ( nomimage | Partiedelimage | surquoi ? | coordonnees )
SDL_BlitSurface( img , NULL , bg , & ) ;
SDL_Flip(bg);
}

Là tu crées une surface Machin et tu la blittes...D´où la faute de Segmentation :)

Faut réutiliser les pointeurs que tu as passées en argument.

Ptival
Ptival
Niveau 10
09 février 2005 à 17:13:28

Pareil dans AffichageBout...Enfin bon tout ton header est foireux...Normalement tu ne mets que les prototypes des fonctions, et puis généralement on utilise les arguments qu´on envoie dans une fonction :lol:

Ptival
Ptival
Niveau 10
09 février 2005 à 17:14:25

Oula j´ai rien dit j´ai halluciné...

jejej
jejej
Niveau 9
09 février 2005 à 17:16:30

Ouais bon . .. C´est mon premier header moi hein :)

Mais je sens que je vais revenir à la technique ddu " tout le projet en un fichier " , c´est moche et illisible , mais ca marche :)

par contre ptival , je ne comprends pas :
"
et puis généralement on utilise les arguments qu´on envoie dans une fonction "

je les utilise nan ? je passe *img , surface a blitter , je passe x et y , coordonnes où blitter l´image , et *bg , surface sur laquelle blitter . Qu´est ce qui ne va pas ?

Ptival
Ptival
Niveau 10
09 février 2005 à 17:20:29

Les conneries que je viens de dire mises à part, ya des trucs bizarres genre ça :

printf("Erreur d´initialisation de l´affichage " , SDL_GetError());

Là ton deuxième argument il sert à rien...Faut mettre un %s pour l´afficher sinon ça sert à rien :lol:

Euh sinon bah ta segmentation fault est normale, tu ne loades aucune surface !

Ptival
Ptival
Niveau 10
09 février 2005 à 17:21:54

jejej -> Non pour les arguments laisse tomber j´ai dis que j´avais déliré...Par contre t´as mis aucun Load_BMP alors forcément Segmentation Fault :lol:

Et aussi pense à ce que j´ai dit pour les printf...

JeanYvesYves
JeanYvesYves
Niveau 10
09 février 2005 à 17:23:57

ta variable
ecran, dans ton main.cpp n´est jamais changée

essaie de voir, juste pour voir si ça marche :

void InitialisationSDL(int x , int y , int bbp , SDL_Surface*& Img)

a la place de

void InitialisationSDL(int x , int y , int bbp , SDL_Surface *Img )

jejej
jejej
Niveau 9
09 février 2005 à 17:41:33

Mmmm , en fait , la partie du code que tu m´indique JYY , est completement morte , je me suis un peu enerve , j´ai appuye plein de fois sur * ( ********************* ) ca compile encore
sinon ptival , t´avais raison j´ai ptetre oublie de rajouter le loading ^^
mais meme en le rajoutant dans le . cpp et en l´appellant

void Loading()
{
Plateau = SDL_LoadBMP("DATA/Grille.bmp");
}

ca marche pas :p)
Nan , en fait je pense maitenant qu´au meme titre que la SDL exige d´ecrire int main ( int argc , char *argv[] ) , elle veut que l´initialisation soit ecrite dans le . cpp ?

Ptival
Ptival
Niveau 10
09 février 2005 à 17:45:35

Non non, poste le code avec le Loading, tu as surement fait une erreur là.

Mais c´est pas un problème d´initialisation.

JeanYvesYves
JeanYvesYves
Niveau 10
09 février 2005 à 17:47:55

void Loading()
{
Plateau = SDL_LoadBMP("DATA/Grille.bmp");
}

--> ça charge ton image dans " Plateau"
mais ou est déclaré ton " plateau" ?
dans le fichier affichage.cpp ?
si c´est le cas, il n´a pas de portée dans le fichier main.cpp et donc tu ne peux pas y accéder.
Il faut organiser tes données :)
C´est une histoire de portée...

JeanYvesYves
JeanYvesYves
Niveau 10
09 février 2005 à 17:50:35

si tu ne veux pas t´embeter, remet tout dans le meme fichier :)
En lisant ton code, je vois beaucoup de valeurs qui sont passées par copie, comme ton pointeur ecran, etc, et ce que tu modifie, c´est la copie, et pas l´original, enfin bref :)

jejej
jejej
Niveau 9
09 février 2005 à 17:56:57

Ouais , mais . .. bon ok , panne seche d´arguments contradictoires la ^^

bon bon ok , je vais voir ce que je peux faire ( 1-aller mater un film 2- relire mon bouqin sur le c++ )
dur dur le choix :p)

merci pour tout :)

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