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

  FORUM HardWare.fr
  Programmation
  C++

  DLL et instances...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

DLL et instances...

n°613519
Baffos
Posté le 16-01-2004 à 14:31:52  profilanswer
 

Bonjour,
 
j'ai un probleme et je ne trouve pas de solution :(
 
quand on realise un LoadLibreary() on charge une premiere fois une DLL. Cependant j'aurai voulu charger deux fois la meme DLL, sans que les variable soient communes à mes deux instances. Je n'y arrive pas... que faire ?? (chnif)
 
help me :(

mood
Publicité
Posté le 16-01-2004 à 14:31:52  profilanswer
 

n°613611
gilou
Modérateur
Modzilla
Posté le 16-01-2004 à 16:21:38  profilanswer
 

[:google] bordel!
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°613622
Baffos
Posté le 16-01-2004 à 16:32:31  profilanswer
 

formidable

n°613623
blackgodde​ss
vive le troll !
Posté le 16-01-2004 à 16:32:35  profilanswer
 

au LoadLibrary, si tu rappelles ta dll pour le meme processus, il va te renvoyer le meme HMODULE et ne pas le recharger, il va augmenter un compteur interne.
 
tu peux par contre instancier plusieurs fois les objets de ta dll ?


---------------
-( BlackGoddess )-
n°613641
gilou
Modérateur
Modzilla
Posté le 16-01-2004 à 16:41:30  profilanswer
 

Ben j'ai trouve plein d'articles expliquant comment faire en 5s avec google. Aide toi et le forum t'aidera, mais si tu ne fais pas d'efforts, ne comptes pas sur nous.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°613644
Baffos
Posté le 16-01-2004 à 16:42:57  profilanswer
 

merci pour ta reponse BlackGoddess !
 
par contre je ne comprends pas ce que tu veux dire par instancier plusieurs fois les objets de ma dll ... tu veux dire que c'est la DLL qui s'occuperait de creer de nouveaux objets ? si tel est le cas comment pourrait elle identifier/differencier les differents appels ?

n°613646
Baffos
Posté le 16-01-2004 à 16:44:11  profilanswer
 

pour gilou : Un article parlant du probleme de la double-instantiation ?

n°613666
gilou
Modérateur
Modzilla
Posté le 16-01-2004 à 17:03:37  profilanswer
 

Tu fais "dll shared variable" sous google.
Et hop, tu obtiens:
http://www.codeproject.com/dll/dat [...] print=true
http://msdn.microsoft.com/library/ [...] lls.3f.asp
http://www.lesher.ws/rebase.html
etc etc
A+,


Message édité par gilou le 16-01-2004 à 17:06:26

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°613693
Baffos
Posté le 16-01-2004 à 17:26:45  profilanswer
 

gilou : formidable encore. Je voulais exactement le contraire : La meme application qui créé 2 instances d'un DLL et qui obtient une zone memoire pour chacune d'entre elle.... Mais merci quand meme ;)

n°613767
blackgodde​ss
vive le troll !
Posté le 16-01-2004 à 19:29:05  profilanswer
 

bin ... tu ne dois pas passer par le LoadLibrary pour differencier des instances d'une dll, mais par contre utiliser des objets que tu instancies plusieurs fois a l'interieur de ta dll
 
par exemple :
 

Code :
  1. struct foo
  2. {
  3.    int val; // variable qui differenciera suivant chaque instance
  4. };
  5. // fonction a exporter de la dll
  6. // utiliser de multiples fois a la place de loadlibrary
  7. foo* create_object()
  8. {
  9.   return new foo;
  10. }
  11. // fonction a exporter de la dll
  12. // utiliser de multiples fois a la place de freelibrary
  13. void delete_object(foo * mon_objet)
  14. {
  15.   delete mon_objet;
  16. }


 
essaie de faire le parallèle entre une dll contenant des fonctions, et un objet contenant des méthodes pour remplacer ta dll par une classe.
 
puis apres tu peux encapsuler des appels à la dll dans une classe pour mieux gérer la destruction de tes objets construits / le freelibrary s'il y a une exception


---------------
-( BlackGoddess )-
mood
Publicité
Posté le 16-01-2004 à 19:29:05  profilanswer
 

n°613778
gilou
Modérateur
Modzilla
Posté le 16-01-2004 à 19:34:28  profilanswer
 

Creer deux instances d'une DLL, ca veut dire quoi??
Loader plus d'une fois la librairie en memoire?? ca marchera pas IMHO tout au plus auras tu un refcount incrementé.
Je vois pas du tout l'interet de passer par une dll pour faire ce que tu veux. Tu pourrais peut etre expliquer un peu mieux ton probleme afin qu'on lui apporte une solution adaptee.
Si deja tu avais pose de maniere claire ton pb au debut du topic, ca m'aurais evite de te filer des liens inutiles.
A+,


Message édité par gilou le 16-01-2004 à 19:35:46

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°613834
chrisbk
-
Posté le 16-01-2004 à 20:15:51  profilanswer
 

gilou a écrit :


Si deja tu avais pose de maniere claire ton pb au debut du topic, ca m'aurais evite de te filer des liens inutiles.


 
moi j'avais tout a fait compris ce qu'il voulait :o

n°613874
gilou
Modérateur
Modzilla
Posté le 16-01-2004 à 20:49:30  profilanswer
 

Oui, en relisant, un sans m'avais echappé.
Mais bon si on savait ce qu'il veut exactement faire, on comprendrait pourquoi il pose une question aussi zarbi a priori.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

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

  DLL et instances...

 

Sujets relatifs
vb instances simultanéesTrouver toutes les instances d'un type de class connu
[C++/DLL] Question existentiellement conceptuelle : DLL "persistante"DLL COM en MFC
[Delphi] Invalid Pointer Operation avec une string venant d'1 DLL.[Dll] Y a t'il un moyen de connaitre les specifs des fcts d'1 DLL?
Urgent... Multiples instances TomcatComment voir le code d'une Dll
[C/VB] Créer un .exe en VB qui appelle une DLL écrite en C...DLL en C utilisée par VB
Plus de sujets relatifs à : DLL et instances...


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