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

Repertoire

A-Genius
A-Genius
Niveau 7
13 août 2007 à 13:20:04

Bonjour à tous,
J´ai créé mon jeu mais malheureusement, je ne sais pas comment transformer mes fichiers en .h !
Pourriez-vous m´aider ?
Merci d´avance

godrik
godrik
Niveau 30
13 août 2007 à 13:52:44

je ne suis pas sur d´avoir compris la question. Mais je suppose que tu as fait un programme en un seul fichier qui est tres long et que tu cherches (dans un but de lisibilite) le transformer en plusieurs fichiers.

Tu as donc un fichier .c avec plein de fonction et de definition dedans.

L´idée d´un fichier .h est que quand il sera inclut, son contenu sera copié dans le fichier .c
un premiere solution (extremement sale) est de mettre le code de certaine de tes fonctions dans des fichiers .h que tu incluera. Le code sera copié dans ton fichier .c et tu auras gagné.

C´est tres tres sale. On peut faire bien mieux.

L´idée est d´utiliser a ton avantage l´editeur de lien. Rappelons la chaine de compilation d´un programme.

Dans un premier temps le fichier est compilé. C´est a dire que le code est present dans un fichier .o (objet, ca doit etre .obj dans visual) sous format binaire de ta plateforme. A ce stade, le code n´est pas encore placé dans un executable. Quand on fait référence a une fonction, on ne sait pas encore ou elle sera. Elle n´est pas forcement présente dans le ficheir objet courant. Elle pourrait n´etre defini que dans une bibliotheque externe. On a donc associé un nom symbolique aux fonctions.

Dans un deuxieme temps, il y a la phase d´edition de lien. Tous les fichiers objets et les bibliotheques sont rassemblés en un seul executable. C´est dans cette phase que l´on assigne les fonctions a leurs adresses respectives.

L´idée pour toi est de faire plusieurs fichiers de code different. Chaque fichiers de code sera compilé dans un fichier objet different. L´édition de lien fera la liaison sans probleme.

Le probleme que tu va rencontrer par contre est tout autre. Lors de la phase de compilation, tu vas vouloir utiliser dans le fichier A.c, une fonction fnct dont le code est présent dans le fichier B.c. Si tu ne fais rien, le compilateur va grincer des dents parceque la fonction n´existe pas. A cet etape la de la compilation, le compilateur ne voit pas le fichier B.c. Il faut alors déclarer dans la fonction fnct dans A.c sans en donner le code. On ne donne alors que son prototype. Tout compile maintenant sans probleme. La solution est déjà bien plus joli.

Imaginons maintenant que la fonction fnct soit utilisé dans 40 fichiers différents. Tu n´as pas envie de recopier a la main le prototype de cette fonction dans les 40 fichiers. Tu ne vas donc l´ecrire qu´une seule fois dnas un fichier .h. Ce fichier .h sera inclu par les 40 fichiers .c.

capito ?

A-Genius
A-Genius
Niveau 7
13 août 2007 à 14:01:49

si capito, senör !
oui c´est a peu près ca (enfait c´est ca)
donc j´ai fait 4 fichiers, variables, init, game et editor
coment je fais pour que ces 4 fichiers deviennent variables.h, init.h, game.h et editor.h ?
autre question, ca va si je mets par exemple tous lesp rototypes pour sdl fmod etc dans un seul fichierr .h et j´incluerais ce fichier.h pour les autres ? genre je mets lesp rototypes de sdl et de windows.h dans variables .h et j´incluerais variables.h dans game.h
ca marchera ?
Et je demande comment compiler mes ficheirs en fichiers.h pas en fichiers .cpp on peut ?

A-Genius
A-Genius
Niveau 7
13 août 2007 à 14:03:56

donc j´ai fait un projet1, un sous projet1 etdans ce sousprojet 1 j´ai mis 4 sousousprojet1 ils sont au format .o, comment ej les mets dans l´éditeur de liens ? c´est dans optinos du projet ? (oui je sais je suis un gros n00b)

godrik
godrik
Niveau 30
13 août 2007 à 15:00:22

ces manipulations la dépendent des environnement de developement. Lequel utilises tu ?
Dans ceux que je connais, il ne faut pas les mettre dans des projets differents. Dans le meme projet cela marche parfaitement. Et on ajoute juste un fihcier .h dans le projet. En general l´environement de developpement est intellignet et comprends ce qu´il faut en faire.
Il faut bien sur penser a inclure les .h dans tes fichiers .cpp
N´oublie pas que cela ce fait #include "toto.h" et pas #include <toto.h> parceque c´est un fichier que tu as fais toi et pas un fichier de la lib standard (le compilo ne les cherches pas dans les meme repertoires)

A-Genius
A-Genius
Niveau 7
13 août 2007 à 15:23:01

Dev C++

Comment on fais pour qu´un fichier .o par exemple devienne un .h ?
merci

godrik
godrik
Niveau 30
13 août 2007 à 19:30:48

ca ne devient jamais un .h
Les .h contiennent des prototypes de fonction. Regardes les .h de la lib c, tu comprendras surement.

A-Genius
A-Genius
Niveau 7
13 août 2007 à 20:08:29

Gné ? J´ai jamais dis ca lesquales35 ^^´

A-Genius
A-Genius
Niveau 7
14 août 2007 à 08:45:56

PAR EXEMPLE ! :-)))

saleGauss
saleGauss
Niveau 9
14 août 2007 à 16:08:41

Tiens c´est marrant ca, A-Genius qui se permet de critiquer pas mal de projets de (très) jeunes amateurs en se faisant passer pour une bete a un probleme de compréhension et d´utilisation des headers.
C´est pourtant la base du C++ que de savoir utiliser ceci.
Je me demande comment tu arrive à programmer sans connaitre ca.

Ne pense pas que je me moque de manière serieuse, je dis juste qu´il faut arreter de se la peter dur tous les topics comme si tu était payé pour le faire, car tu ne connais pas grand chsoe à la création de jeux, et plus générallement, à la programmation.

Sans rancune.

A-Genius
A-Genius
Niveau 7
14 août 2007 à 18:44:15

Ben quoi ?! J´ai fini mon jeu, je veux juste en savori un peu plus pour les types de formats (.o,.h,.cpp)
Ben c´est pas parce qu´on ne connait pas les types de formats qu´on ne sait pas programmer :-)))
Et je ne sais pas où je me la suis pété, je donne des conseils, si tu refuses de comprendre cela, réfléchis deux fois avant d´écrire un message :)
Et je crois que je connais un peu plus que tu ne le crois à la programmation :hap:
Tu ne m´as jamais vu en "pleine action" :)
Sans rancuneS.

saleGauss
saleGauss
Niveau 9
14 août 2007 à 18:54:25

Bah honnetement je me demande comment tu as pu coder un jeu sans connaitre d´existence d´un .cpp, d´un .h et d´un .obj
C´est comme prétendre etre cuisinier sans savoir se servir d´une casserole.
Tu ne peux pas, si tu ne connais pas ca, utiliser des librairies, les inclures, les linker, etc...
Enfin m´aintenant tu en penses ce que tu veux mais je trouve juste que tu n´a aucune raison de t´acherner sur des noobs qui arrivent sur le forum. Arrete d´essayer de te faire remarquer, c´est franchement ridicule. Voila, je voulais te le dire même si c´est pas le bon topic pour ca et je m´en excuse :-)
Donc là je fais comme toi, mais sur toi, juste pour te montrer que c´est très desagréable.

Tu es bien trop condescendant et prétentieux par rapport à ton niveau.
D´ailleurs ton "programmeur c++" dans ton profile montre bien ton état d´esprit.
Programmeur dis tu...

saleGauss
saleGauss
Niveau 9
14 août 2007 à 18:55:27

et concernant ton "je donne des conseils", je ne t´ai jamais vu aider quelqu´un qui avait un réel probleme de prog ou d´algo.
Tu sais juste taper sur du noob ey c´est très simple.

Voila, à++ !

A-Genius
A-Genius
Niveau 7
14 août 2007 à 19:32:06

Ben regarde le site du zéro ou le site de fvirtman il ne faut pas connaitre l´existence de ces formats pour pouvoir programmer...
Pareil pour des livres, ils te disent comment programmer, les fonctions etc, mais ils te disent pas forcément les formats :-)
Mais bon, si tu veux t´acharner sur moi sous le moindre prétexte, je trouve ca franchement très rigolo ^^
Je ne veux pas me faire remarquer, c´est juste que quand quelqu´un comme toi arrive et regarde les topics comme celui de Waska, ils se disent tout de suite une image d´un forumeur. C´est totalement débile et immature. M´enfin j´espères que tu vas changer ^^
Pareil pour toi, je t´ais jamais vu régler un problème d´aglo ou de prog ^^´
Et ce n´est pas à partir de 2 lignes écrite dans un profil sur un forum de sites de jeux vidéos que tu peux définir mon état d´esprit ; c´est complétement ridicule ^^´
En espérant avoir été clair,
A-Genius

godrik
godrik
Niveau 30
14 août 2007 à 22:59:57

(Désolé lapintade de partir en HS sur ton forum)

Je comprends les réactions de saleGauss et est relativement d´accord.
Tu as tendance a conseiller sur des choix technologique dont tu ne comprends visiblement pas la porté. Ce que saleGauss veut dire est:
Tu n´as pas les biceps du gouverneur de la californie alors just keep cool. Conseille les gens, aides les avec ton experience. Mais ne decends pas les gens a vu, c´est pas la mode par ici et habitué risquent de ne pas apprécié.

Notes que je n´aurais rien dit normalement, mais saleGauss avait besoin d´un peu de soutien dans cette affaire.

saleGauss
saleGauss
Niveau 9
15 août 2007 à 00:10:23

Merci Godrik de ton soutient.
Effectivement, tu résume très bien ce que je voulais dire.
Ce n´est pas par volonté d´etre méchant.
Je voulais effectivement dire que son attitude peut par moment pourir un peu l´ambience je trouve.
J´ai vraimment relevé bcp de topic où il était assez méchant je trouvais.

Et ce qui m´étonnes c´est que lui se permette des remarques "de mec calé" alors qu´il n´y connait pas grand chose.
Il n´y a pas de honte à ne pas y connaitre grand chose.
Mais il y a une honte à essayer de nous faire croire que tu y connais quelque chose.
Et c´est encore plus honteux quand par dessus tu essayes de dessendre des gens.
Parce que dis toi que pour une question comme celle que tu as posé on aurait aussi pu te dessendre, surtout quand tu prétend avoir codé un jeu sans connaitre la base de la base.

Ca me fais pensé au topic où tu demandais de l´aide pour installer la SDL et où tu essayais de compiler un code que tu ne comprenais visiblement pas car copié collé d´internet.

Encore une fois, ce n´est pas une honte.
Mais à coté de ca tu ne peux pas te permettre de te conduire ainsi avec les debutants.

Les "vieux expérimentés" du forum (je pense à toi Godrik, Lapintade, JYY, LGV, ...) ne se permettent jamais de remarques aussi seches alors qu´il pourraient bien se le permettre.
Parce qu´ils connaissent la MODESTIE.
Une chose qui manque bcp à A-Genius.

Voila le pourquoi de mes post sur ce topic.
Je m´excuse aussi pour ce HS mais il fallait que je le dire :D

ArtistiManix
ArtistiManix
Niveau 7
15 août 2007 à 06:25:20

....oooooooooo PAF

Ca fait un peu mal, ^^ je comprends maintenant, ta phrase "je me suis fait démolir..." en quelque sorte...

Je sais que tu es jeune, et que pour ton age, la plupart de tes copains ne savent même pas ce que le mot programmation veut dire... ^^ Sauf peut être des enfants comme nous, fada de l´info comme je t´ai expliqué...

Mais, sache une chose, un noob qui te critique est un con, et c´est quelque part de la méchanceté gratuite... Un pro ou un connaisseur qui te critique, est un ami... car, il n´a rien à foutre de toi et si il prend la peine et son temps de t´expliquer ne serait-ce que les quelques textes ici... Dis toi que c´est pour ton bien ^^

On s´est fait tous démolir ! Mais on a persévéré et continuer dans la voie qu´on avait choisi, par belle ou par laide...

Quand j´ai discuté avec kristoff, il avait raison, et je me disais bien que c´était "connaissances de base" ton problème... perso, tu sais que je n´utilise pas le même style de programmation toi c´est texte, moi c´est électronique) mais moi aussi, j´ai les même contrainte, et je dois organiser tout mon travail, et mon moteur et cela fait partie de ça. Les bases, sont ce que tu as de plus fiable ! Si tu ne les connais pas toutes, un jour, tu te prends le mur (ce qui t´es arrivé en quelque sorte). Mais, comme je le dis, tu es jeune, même peut-être trop, mais plus tard, tu vas apprendre la prog à l´école, et là, tu sauras ce que le mot "avoir ses bases de connaissances" veulent dire...

Des type comme I am de law, LGV (qui est à Londres), Kristoff, JYY, Godrick, Luxeregina, Nikko,... s´ils prennent la peine de te parler, c´est que tu en vaut la peine, et ce n´est pas méchant envers toi ^^

Artisti/Manu

A-Genius
A-Genius
Niveau 7
15 août 2007 à 08:48:39

Je ne crois pas avoir dit que j´étais un mec calé, juste que parfois ca me "titille le bout des doigts"...
Et le code je ne l´avais pas copié/colé et je le comprenais parfaitement et il venait du site de fvirtman ^^´
Je connais l´existence d´un .cpp d´un .o ou d´un .h, mais ce n´est pas pour autant de dire que si le type sait pas ce que c´est .cpp = c´est un gros noob...
Mais revenons au sujet principal, parce que là ca "pourris" l´ambiance :p

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