Utilisation dynamique d'une DLL [résolu...] [Builder C++ 6] - C++ - Programmation
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
Marsh Posté le 12-06-2005 à 22:16:29
j'ai pas le choix.
Marsh Posté le 12-06-2005 à 22:38:21
Luke, aide-moi
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
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 tes débrouillé pour que toutes tes dll aient besoin les unes des autres, cest un vrai sac de nud.
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...
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 dautres programmes/dll.
Mais ce que jai du mal à comprendre cest pourquoi tu modifies tes anciennes dll en leur disant quelles ont besoin des nouvelles.
A ce compte la pourquoi ne pas faire à la place une seule dll qui les remplacerait ?
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 dautres programmes/dll. |
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)
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.
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
Marsh Posté le 12-06-2005 à 20:24:34
Bonjour à tous
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. »