Bonjour,
Ma question est toute simple : comment insérer un fichier texte en ressource (d'une dll), et le lire par la suite durant l'exécution ? Peut-on le modifier ?
Merci d'avance.
Bonjour,
Ma question est toute simple : comment insérer un fichier texte en ressource (d'une dll), et le lire par la suite durant l'exécution ? Peut-on le modifier ?
Merci d'avance.
Salut,
Pour un logiciel sans éditeur de ressources, je suis un peu out, et je ne saurais pas trop te dire les détails.
Sache toutefois que tu dois utiliser un type de ressources personnalisé (en effet, tu peux mettre n'importe quoi en ressources), et le charger avec FindResource(), LoadResource() et LockResource().
Par contre, il me semble qu'il n'y a aucun moyen de dé-charger un fichier ainsi chargé durant l'exécution du programme: Il reste en mémoire jusqu'à ce que l'exe ou la DLL qui le contient soit déchargé(e) (et encore, si ça se trouve, ça ne suffit pas et ça reste carrément jusqu'à la fin du process).
PS: Pour ton autre projet (le player), il faudrait qu'on puisse un minimum en discuter sur messagerie instantanée. Tu as MSN ?
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Merci. Oui, j'ai msn. J'ai vu que tu m'avais rentré comme contact, donc on en discutera bientôt.
Fin du hors sujet![]()
Pour les ressources, je compte juste utiliser le fichier texte en ressource de la dll pour récupérer des infos... bref, au début du programme et puis c'est tout.
En tout cas, je vais jeter un coup d'oeil du côté de ces fonctions.
Je suppose que le sujet est donc clôs => Sujet résolu. (on verra en pratique)
Si je comprends bien, afin d'ouvrir le fichier texte à partir de la ressource de la dll, il faut que je fasse :
Avec la déclaration ressource suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part FILE *textFile = fopen(LockResource(LoadResource(LoadLibrary("Draw.dll"), FindResource(LoadLibrary("Draw.dll"), "textFile", RT_RCDATA))), "r");
C'est ça ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part textFile RCDATA "textFile.txt"
Houlà...
Déjà, tout sur une ligne, ça fait mal aux yeux.
Ensuite, si tout ce que tu cherches à mémoriser est une chaîne de rien du tout, ce n'est pas une ressource personalisée que tu dois utiliser: C'est une String Table...
Moi, je croyais que c'était le contenu du fichier texte que tu voulais stocker en ressource, par exemple pour le générer s'il n'est pas là...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
En fait, j'aimerais accéder, d'une manière ou d'une autre, à des informations entrées à la compilation de la dll. Normalement, ce sont des couples de nombres, mais une string fera l'affaire (avec sscanf bien utilisé, ça devrait aller).
Je vais me renseigner, merci.
Edit: Mon code ci-dessus n'aurait pas marché : fopen attend le chemin d'accès au fichier, et non une espèce de handle (c'est vrai ça, en faisant ça, quel est le type obtenu dans le LPVOID ?)
Partager