[Builder C++ 6] Utilisation dynamique d'une DLL [résolu...]

Utilisation dynamique d'une DLL [résolu...] [Builder C++ 6] - C++ - Programmation

Marsh Posté le 12-06-2005 à 20:24:34    

Bonjour à tous :hello:  
 
J'ai un problème dans l'utilisation dynamique d'une dll. Voici l'architecture de mon logiciel:
 
1) launcher.exe utilise platform.dll de manière statique
 
2) platform.dll utilise plugin.dll de manière dynamique
 
3) plugin.dll utilise plateform.dll de manière statique
         et utilise technic.dll de manière dynamique
HINSTANCE hinstDLL;
hinstDLL=LoadLibrary("technic.dll" ))) ;
 
4) technic.dll utilise plateform.dll de manière statique
 
 
Le problème, c'est que quand je lance mon appli, en 3) LoadLibrary retourne NULL... Si en 4) je ne lie pas plateform.dll (donc j'enlève tout include y faisant référence et je vire la lib du makefile) alors dans ce cas j'arrive bien à charger ma dll.
 
Est-ce que c'est parce que platform.dll est utilisée à différents endroit que son chargement échoue en 3) ?
 
Je ne vois pas de solution :/


Message édité par kaloskagatos le 13-06-2005 à 18:29:07

---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »
Reply

Marsh Posté le 12-06-2005 à 20:24:34   

Reply

Marsh Posté le 12-06-2005 à 21:17:07    

ai-je été assez clair? Si vous voulez des précisions je peux ptet réxpliquer qqc


---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »
Reply

Marsh Posté le 12-06-2005 à 21:24:26    

tu me dégoutes va.

Reply

Marsh Posté le 12-06-2005 à 22:16:29    

j'ai pas le choix.


---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »
Reply

Marsh Posté le 12-06-2005 à 22:24:57    

Plus facile, plus séduisant est le côté obscur.

Reply

Marsh Posté le 12-06-2005 à 22:38:21    

Luke, aide-moi


---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »
Reply

Marsh Posté le 12-06-2005 à 23:05:42    

je voudrais bien, mais déjà que j'ai du mal à comprendre comment on peut utiliser une dll statiquement :o

Reply

Marsh Posté le 12-06-2005 à 23:41:25    

Taz : Je pense qu'il parle d'utiliser une librairie d'import (pour le statique) ou LoadLibrary (pour le dynamique).
 
Moi, je ne comprends pas comment tu t’es débrouillé pour que toutes tes dll aient besoin les unes des autres, c’est un vrai sac de nœud.

Reply

Marsh Posté le 13-06-2005 à 00:02:19    

Effectivement platform.dll est toujours utilisée en bibliothèque d'import, je chercherai donc de ce côté. Ce n'est pas moi qui suis à l'origine de cette archi, c'est un  gros projet que je commence, chaque programme fonctionne comme un plugin qui lui même contient des plugins...


---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »
Reply

Marsh Posté le 13-06-2005 à 00:11:07    

Je veux bien que tu mettes tes fonctions/objets/etc dans des dll, je veux bien que tu ais envie de les réutiliser dans d’autres programmes/dll.
Mais ce que j’ai du mal à comprendre c’est pourquoi tu modifies tes anciennes dll en leur disant qu’elles ont besoin des nouvelles.
A ce compte la pourquoi ne pas faire à la place une seule dll qui les remplacerait ?

Reply

Marsh Posté le 13-06-2005 à 00:11:07   

Reply

Marsh Posté le 13-06-2005 à 00:19:26    

Tarabiscote a écrit :

Je veux bien que tu mettes tes fonctions/objets/etc dans des dll, je veux bien que tu ais envie de les réutiliser dans d’autres programmes/dll.
Mais ce que j’ai du mal à comprendre c’est pourquoi tu modifies tes anciennes dll en leur disant qu’elles ont besoin des nouvelles.
A ce compte la pourquoi ne pas faire à la place une seule dll qui les remplacerait ?


 
Je suis pas sûr de comprendre cette phrase :/
 
Une plateforme fournit divers services (création de fenêtre, affichage d'images, gestion de formats de fichiers, lancement des plugins,...) -> un exe minimal et une dll
 
Un plugin utilise ces services, et a lui même des plugins, les "techniques" qui sont en fait différents traitements d'image.  
 
Donc j'ai bien besoin de toutes ces dll. Ce que je n'ai pas essayé c'est d'utiliser platform.dll dynamiquement, j'ai zappé cette idée étant en phase de développement et n'étant pas très familier de builder (spéciale kassdédie à Taz)


---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »
Reply

Marsh Posté le 13-06-2005 à 13:11:36    

En fait j'essayai seulement de comprendre comment tu en étais arrivé là et ce que tu cherchais à faire exactement.
 
Je ne vois pas pourquoi tu ne passes pas plutôt en paramètre ce dont tu as besoin dans l'autre dll.
 
Autrement tu peux aussi nous montrer le bout de code où tu utilises LoadLibrary.


Message édité par Tarabiscote le 13-06-2005 à 13:11:58
Reply

Marsh Posté le 13-06-2005 à 18:28:56    

Bon, je vous prie de m'excuser car ce n'est pas très constructif mais le problème est résolu et je ne sais pas ce qui clochait: j'ai tout revérifié et au final ça marche. Donc je devais faire une bêtise...
 
Je n'ai pas le net au boulot c'est pourquoi je n'ai pas posté dans la journée. Merci de vous être penché sur mon cas :)


---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed