English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
Toutes les catégories

J'ai écrit un petit utilitaire qui lit un format de fichier qui lui est spécifique. Le fichier exe étant très petit je me dis qu'il serait beaucoup plus simple pour l'utilisateur de disposer d'un exe qui embarque à la fois le lecteur et le fichier à lire (attention : pas de décompression, il doit pouvoir le lire directement). Je peux modifier mon code source si nécessaire. Quels langages et bibliothèques permettent de faire ça?

2007-03-06 18:39:32 · 1 réponses · demandé par t_cordonnier 7 dans Informatique et internet Programmation

Oui Jako c'est bien à quelque chose comme ça que je pense. Sauf que je ne dispose pas de la ressource au moment de la compil donc : est-il possible de compiler le programme et de rajouter la ressource dans le fichier exe plus tard (avec le même nom de ressource pour que le programme s'y retrouve)?

Je l'ai déjà fait en Java avec les jar, je veux donc savoir si c'est possible avec des exe.

2007-03-07 03:28:18 · update #1

Et si je ne connais pas la taille de la ressource?
Peut-être ne faut-il pas faire un exe mais un .o que l'on lie à la ressource après?
Ca doit être possible puisque les concepteurs d'installateurs le font (fusion de code exécutable avec le .cab qui contient les données compressées).
Une idée?

2007-03-07 18:25:24 · update #2

1 réponses

Avec Visual C++ par exemple, on doit pouvoir faire ça en mettant les données dans les ressources du programme.

Après, dans le programme, yapuka :
* Lire la ressource
* S'en servir comme source de données d'entrées


Ça semble possible même après compilation, il 'suffit' par exemple de mettre à la compilation une ressource 'bidon' puis ensuite de patcher le programme.

J'avais fait ça avant de revoir ta réponse,

HRSRC hRsrc = FindResource(NULL,(LPCTSTR)IDR_DATAS1,"DATAS");

if (hRsrc == NULL)
{
return(0);
}

DWORD dwResourceSize = SizeofResource(0, hRsrc);

char *ptr = (char*)LoadResource(0, hRsrc);

for(DWORD dwPos=0; dwPos {
printf("%c",ptr[dwPos]);
}

Va voir la documentation de FindResource ou LoadResource dans MSDN, tu devrais trouver ton bonheur.

Sinon, regarde ça : http://www.cppfrance.com/codes/PATCHGENERATOR-WIN32_24681.aspx

Bon courage !

2007-03-06 23:53:51 · answer #1 · answered by Jako 7 · 0 0

fedest.com, questions and answers