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

Résolu
Signaler
Messages postés
6
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
29 janvier 2009
-
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
-
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

Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
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.
Messages postés
111
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
5 août 2011
1
Salut,

Il faut que tu inclue avec ton exécutable le fichier DLL soit dans le même répertoire ou system32...
Messages postés
6
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
29 janvier 2009

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...
------------------------------------------------------------------------------------- 
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
15
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à.
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
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.
Messages postés
6
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
29 janvier 2009

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