Problème pour rendre un exécutable indépendant

Résolu
cs_marco900 Messages postés 6 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 29 janvier 2009 - 28 janv. 2009 à 16:02
racpp Messages postés 1910 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 - 29 janv. 2009 à 21:25
Bonjour à tous!!!!
Voici mon premier message...Voila, j'utilise borland C++ builder 6. J'ai un projet réalisé avec l'aide de la librairie FreeImage. Je n'arrive pas à rendre mon exécutable autonome. J'ai pourtant bien décoché "utiliser la RTL dynamique" et "construire avec les paquets d'exécution" .
Lorsque je déplace et exécute mon exe ailleur que dans le répertoire de mon projet, un message m'affiche "cette application n'a pas pu démarrer car FREEIMAGE.DLL est introuvable. La réinstallation de cette application peut corriger ce problème".
Pouvez-vous m'aider s'il vous plait?

Merci beaucoup

Vive bourlanddd!!!;)

6 réponses

racpp Messages postés 1910 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 15
29 janv. 2009 à 21:25
Je n'utilise pas Borland mais le principe est le même. Avec le Bloc-notes, créer un fichier en l'enregistrant avec l'extension .rc. Son contenu ressemblera à ceci:
ID_DLL BINARY "nomdll.dll"
Il sera ensuite inclu à ton projet.
Les fonctions FindResource() et LoadResource() seront utilisées dans le code pour charger la resource et les fonctions CreateFile() et WriteFile() pour la copier dans le dossier de l'exécutable. Tu peux regarder parmi mes sources mon Lecteur d'animations Flash comme exemple. Les fonctions peuvent être chargées dynamiquement pour éviter d'utiliser le .Lib.
3
JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 1
28 janv. 2009 à 16:49
Salut,

Il faut que tu inclue avec ton exécutable le fichier DLL soit dans le même répertoire ou system32...
0
cs_marco900 Messages postés 6 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 29 janvier 2009
28 janv. 2009 à 16:55
Merci pour ta réponse JejeLand

Le truc c'est que j'aimerai trimbaler seulement mon exe...Je ne veux pas qu'il dépende de la dll... J'ai essayé de convertir un .dll en .lib : erreur de linkage (COFF et OMF), j'ai essayé le log de borland coff2omf pour convertir coff en omf mais ca ne marche pas non plus...
Je veux juste filer mon .exe a quelqu'un qui n'a pas borland, pas mon .exe et mon .dll

------------------------------------------------------------------------------------- 
Si vous arrivez à arrêter de fumer, boire & faire l'amour, vous ne
vivrez pas plus vieux ; ça vous semblera juste plus long...
------------------------------------------------------------------------------------- 
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
29 janv. 2009 à 12:55
Salut,

Je ne savais pas que faire l'amour était mauvais pour la santé. Cela dit ça explique peut être que je suis plutôt en bonne santé.

Il est à peu près impossible de réunir un .exe et sa .dll dans un même .exe, et de faire tourner le tout sans recréer la dll sur l'ordinateur cible.

Ce qui se fait bien par contre, c'est un insalleur. Ca te fait un .exe qui installe proprement l'application et ses dépendances sur le PC cible. Je te conseille vivement Inno Setup, gratuit et génial.

Sinon, tu peux essayer de compiler FreeImage comme librairie statique. Regarde cette FAQ :
How to use FreeImage as a static library instead of as a
DLL (Visual C++ 6) ?


Bon c'est pour VC6, mais l'esprit est là.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
racpp Messages postés 1910 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 15
29 janv. 2009 à 20:11
Salut,
Il est également possible de mettre la DLL comme ressource binaire dans l'exécutable. Si, une fois lancé, ce dernier ne trouve pas la dll, il la copie depuis la ressource vers le dossier de l'exécutable.
0
cs_marco900 Messages postés 6 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 29 janvier 2009
29 janv. 2009 à 21:04
Bonjour à tous

[auteur/RT15/464943.aspx rt15], j'ai déjà essayé cette solution mais je n'arrive pas à compiler la librairie, je pense qu'il manque des choses à l'intérieur....Mais je suis quand même passé de 1500 a 700 erreurs...Du progrès
[auteur/RACPP/295159.aspx racpp] comment fais tu pour mettre la dll comme ressource binaire sous bourland C++ beer 6?

A bientôt

------------------------------------------------------------------------------------- 
Si vous arrivez à arrêter de fumer, boire & faire l'amour, vous ne
vivrez pas plus vieux;Ca vous semblera juste plus long
0
Rejoignez-nous