Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1185 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Utiliser une DLL à partir d'une autre DLL ca se fait ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Utiliser une DLL à partir d'une autre DLL ca se fait ?

n°344834
LeMakisar2
Posté le 27-03-2003 à 09:55:25  profilanswer
 

Ou pas :??:

mood
Publicité
Posté le 27-03-2003 à 09:55:25  profilanswer
 

n°344874
gatorette
Posté le 27-03-2003 à 10:11:48  profilanswer
 

Jamais essayé, mais je pense que ça doit pas poser de problèmes.


---------------
each day I don't die is cheating
n°344880
LeMakisar2
Posté le 27-03-2003 à 10:16:31  profilanswer
 

bon ben dès que je peux je teste :)
Si qqn a déjà fait qu'il le dise svp

n°344882
chrisbk
-
Posté le 27-03-2003 à 10:17:10  profilanswer
 

vivi, g des dll qui utilisent une dll qui utilise une dll, ca pose pas de pb

n°344887
LeMakisar2
Posté le 27-03-2003 à 10:19:56  profilanswer
 

ok merci a vous 2 :)  
et sinon, c possible d'utiliser une classe (externe à la DLL) ds une DLL ?

n°344888
chrisbk
-
Posté le 27-03-2003 à 10:20:44  profilanswer
 

heuh ouais, si ladite classe a sa description dans un .lib que tu peux utiliser au link (attention au crt, c le merdier) ou exporter d'une autre dll...

n°344938
polo021
Posté le 27-03-2003 à 10:50:45  profilanswer
 

comment on fait deja pour integrer une dll a son projet?

n°345446
LeMakisar2
Posté le 27-03-2003 à 15:43:51  profilanswer
 

c pas moi qui peux t'aider pour le moment :D
J'ai pas encore commencé avec Builder :)

n°345448
chrisbk
-
Posté le 27-03-2003 à 15:44:55  profilanswer
 

polo021 a écrit :

comment on fait deja pour integrer une dll a son projet?


 
avec winzip

n°345456
polo021
Posté le 27-03-2003 à 15:47:17  profilanswer
 

chrisbk a écrit :


 
avec winzip


 
 :sol:

mood
Publicité
Posté le 27-03-2003 à 15:47:17  profilanswer
 

n°345706
gatorette
Posté le 27-03-2003 à 17:20:07  profilanswer
 

polo021 a écrit :

comment on fait deja pour integrer une dll a son projet?


 
Je peux t'aider pour Visual C++ :
 
Pour intégrer une DLL à ton projet tu as deux possibilités :

  • Soit la lier "statiquement" à ton application ; c'est à dire qu'elle est chargée au démarrage de ton application et que tu peux appeler les fonctions telles quelles.

Cependant ton application refusera de démarrer si elle n'est pas capable de trouver cette DLL. C'est comme ça que sont chargées les DLLs comme "Kernel32.dll", "User32.dll"...
Cette méthode a l'avantage d'être simple, mais elle nécessite l'utilisation d'un fichier ".lib" utilisé par le linker (sous Visual C++ 6, "Project"->"Settings"->"Link"->"Object/library modules" ).

  • Soit y accéder "dynamiquement" à l'exécution ; c'est à dire qu'elle est chargée quand tu en as besoin mais cela implique un accès plus compliqué.

Ici le gros problème est que l'utilisation n'est pas pratique. En effet, il faut utiliser "LoadLibrary" et "GetProcAddress" (sans oublier "FreeLibrary" ) pour charger les fonctions.
Cependant, cela permet une utilisation bien plus souple (il est possible de gérer les erreurs contrairement à l'autre utilisation).


---------------
each day I don't die is cheating
n°346399
polo021
Posté le 28-03-2003 à 12:37:03  profilanswer
 

 :jap:

n°346607
chrisbk
-
Posté le 28-03-2003 à 14:56:56  profilanswer
 

gatorette a écrit :


Ici le gros problème est que l'utilisation n'est pas pratique. En effet, il faut utiliser "LoadLibrary" et "GetProcAddress" (sans oublier "FreeLibrary" ) pour charger les fonctions.
Cependant, cela permet une utilisation bien plus souple (il est possible de gérer les erreurs contrairement à l'autre utilisation).


 
par contre tu es limite au std d'appel de fonction en C (pas de surcharge par ex), fo faire gaffe a ca

n°346612
BENB
100% Lux.
Posté le 28-03-2003 à 15:01:00  profilanswer
 

chrisbk a écrit :


 
par contre tu es limite au std d'appel de fonction en C (pas de surcharge par ex), fo faire gaffe a ca


Et surtout tu ne peux plus partager de classes a moins d'inverser les dependances

n°346615
chrisbk
-
Posté le 28-03-2003 à 15:01:55  profilanswer
 

BENB a écrit :


Et surtout tu ne peux plus partager de classes a moins d'inverser les dependances


 
roohh ca faisait bien lgtemps qu'on ne t'avait vu, toi :O
ca va ?

n°346625
HelloWorld
Salut tout le monde!
Posté le 28-03-2003 à 15:10:06  profilanswer
 

Utiliser une DLL à partir d'une autre DLL est tout à fait possible et très courant (fait un apperçu avec dependency walker et tu verras que bcp de dll utilisent kernel32 qui elle meme utilise ntdll ...).
Si tu réalise plusieurs dll qui s'utilisent mutuellement, il faut cependant faire attention à ce qu'elles n'aient pas la meme adresse de chargement par défaut, car elle vont entrer en collision et Windows va devoir les "rebaser" une à une, ce qui peut ralentir sensiblement leur chargement et donc celui de ton programme.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°346632
gatorette
Posté le 28-03-2003 à 15:15:48  profilanswer
 

BENB a écrit :


Et surtout tu ne peux plus partager de classes a moins d'inverser les dependances


 
Qu'est-ce que tu veux dire par "inverser les dépendances" ?
Tu peux partager relativement simplement des classes en utilisant un système tel que COM ; et (si c'est ce que tu voulais dire) ta Dll ne sera pas dépendante de ton appli.
 
edit: correction de tags (j'ai un peu de mal, désolé)


Message édité par gatorette le 28-03-2003 à 15:16:15

---------------
each day I don't die is cheating
n°346639
BENB
100% Lux.
Posté le 28-03-2003 à 15:20:18  profilanswer
 

chrisbk a écrit :


 
roohh ca faisait bien lgtemps qu'on ne t'avait vu, toi :O
ca va ?


 
Un peu crevee...
 
mais globalement ca va...
 
Et toi ?
 

n°346641
chrisbk
-
Posté le 28-03-2003 à 15:21:25  profilanswer
 

BENB a écrit :


 
Un peu crevee...
 
mais globalement ca va...
 
Et toi ?
 
 


peinard, a nouveau en stage en allemagne pas loin de la plage, boulot sympa, collocs sympa, bref, ca roule tranquille !

n°346646
BENB
100% Lux.
Posté le 28-03-2003 à 15:23:46  profilanswer
 

gatorette a écrit :


 
Qu'est-ce que tu veux dire par "inverser les dépendances" ?
Tu peux partager relativement simplement des classes en utilisant un système tel que COM ; et (si c'est ce que tu voulais dire) ta Dll ne sera pas dépendante de ton appli.
 
edit: correction de tags (j'ai un peu de mal, désolé)


 
Au contraire si la Dll qui est chargée explicitement a une dependance implicite vis a vis de l'executable qui la charge, alors elle peut importer des classes en provenances de cet executables, si elle utilise ces classes pour en faire des heritages, l'executable peut les reutiliser par polymorphisme et la dependance est inversee : celui qui charge explicitement ne dependant pas de celui qu'il charge...

n°346649
BENB
100% Lux.
Posté le 28-03-2003 à 15:26:15  profilanswer
 

chrisbk a écrit :


peinard, a nouveau en stage en allemagne pas loin de la plage, boulot sympa, collocs sympa, bref, ca roule tranquille !


 
Ben moi une tetrachiee de bugs qui est entrée...
du coup la grosse bourre...
 
La on sort un peu la tete, y a plus de bugs qui rentrent... enfin nos gentil developpeurs font une release dans un semaine... donc une semaine de repis avant une nouvelle vague de bugs... C'est ca la maintenance... ;)

n°347240
ToxicAveng​er
Posté le 29-03-2003 à 16:13:37  profilanswer
 

BENB a écrit :


 
Ben moi une tetrachiee de bugs qui est entrée...
du coup la grosse bourre...
 
La on sort un peu la tete, y a plus de bugs qui rentrent... enfin nos gentil developpeurs font une release dans un semaine... donc une semaine de repis avant une nouvelle vague de bugs... C'est ca la maintenance... ;)


 
Euh, tu fais quoi dans la vie ? debugueur ?  :??:

n°348157
BENB
100% Lux.
Posté le 31-03-2003 à 13:10:18  profilanswer
 

Responsable maintenance...
 
On recupere les clients pas contents, et leur rapport d'anomalie, et au choix, on leur explique comment utiliser leur logiciel, ou on valide une anomalie.
 
Si on valide une anomalie, on fait une recherche d'anteriorite :
Existe deja, ou a deja existé sur ce produit ou un autre
 
Un recherche de regression : de quelle version date cette anomalie, est-elle presente sur les nouvelles versions
 
Une fois quer l'on a toutes ces infos on commence l'investigation : trouver l'origine de l'erreur...
 
Si l'erreur est simple, on corrige, on revalide, sinon on refile le bébé aux developpeurs du produit...
 
et on tient le client au courant...

n°701335
giova
Posté le 16-04-2004 à 18:13:49  profilanswer
 

oui mais vous faites comment exactement pour inclure la dll dans la dll?
 
precision 1), c'est dédié pour du C, en faite pour rendre gdiplus facilement utilisable en C.
 
precision 2) une autre dll a inclure a des fonctions surchargées, et ma dll qui inclue les deux autres va egalement en avoir (enfin si tout ca est possible ca m'arrangerai grandement.)
 
perso je debute completement, et j'employe la methode suivante (apparemment du loadtime) :
 
#include "gdiplus.h"
 
et dans les propriétés du projet (sous visual), editeur de lien, entrée, dependance supplementaire je lui colle gdiplus.lib
 
dans une classe ou un code tout bete ca fonctionne, parcontre si je fais ca dans ma dll j'obtiens tellement d'erreurs que la compil s'arrette, en bref il ne digere pas du tout la dll a inclure dans la dll.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Utiliser une DLL à partir d'une autre DLL ca se fait ?

 

Sujets relatifs
htaccess : accéder à un répertoire que à partir d'un ou plusieurs rep[Dev-cpp] Comment utiliser l'option CVS ?
[PHP] utiliser beaucoup d'objets en php ?faire simplement un petit prog à partir une feuille exel....
Lancer une désinstalle à partir de la ligne de commande ?[PHP] Version a partir de laquelle est disponible une fonctionalité
Utiliser un driver pour graveur ???Utiliser la librairie ncurses ?
Utiliser des CSocket dans une application QT...generer du pdf a partir d'xml?
Plus de sujets relatifs à : Utiliser une DLL à partir d'une autre DLL ca se fait ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR