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

  FORUM HardWare.fr
  Programmation

  [VC++] Dll et STL: probleme de recopie (???)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VC++] Dll et STL: probleme de recopie (???)

n°52843
SoWhatIn22
Posté le 14-08-2001 à 17:09:12  profilanswer
 

hello,
 
voici mon soucis:
 
Dans une fonction, j'intancie une map de la STL (de microsoft). Ensuite, je charge explicitement une dll (LoadLibrary) et je recupere l'adresse d'une fonction de cette dll. Cette fonction prend en argument un pointeur sur un objet map.
 
Une fois le pointeur sur la fonction récupéré, j'appelle cette fonction et je lui passe un pointeur sur l'objet map instancié précédemment.
Le pointeur n'a pas changé, mais je ne retrouve pas completement l'objet pointé: une partie de ses attributs ont changés... Je suis donc incapable de faire une manipulation sur cete objet, pas même une recopie.
 
ex:
void fonc(void)
{
 map<int,int> mymap;
 HINSTANCE hinst = LoadLibrary("mydll" );
 
 typedef void (* TYPE) (map<int,int> *);
 TYPE my fonc = (TYPE) GetProcAddress(hinst, "dllfunc" );
 
 dllfunc(&mymap);
}
 
quand je rentre dans la fonction dllfunc, alors l'adresse de mymap est bien toujours la même, mais je ne peux rien faire sur l'objet pointé, pas même le recopier.
J'ai essayer de passer une référence au lieu d'un pointeur, mais c'est la même chose.
 
Si qq1 a compris ce que je veux dire et a en plus une idée, alors j'attends sa réponse avec une TRES grand impatience, parce que je ne vois pas d'ou vient le soucis...
 
merci d'avance.

mood
Publicité
Posté le 14-08-2001 à 17:09:12  profilanswer
 

n°53119
SoWhatIn22
Posté le 16-08-2001 à 17:41:45  profilanswer
 

si par hasard yen a qui lisent ce post un jour, voila la solution à mon soucis:
 
il se trouve que l'implementation de la STL par Microsoft est buggée. Mon soucis ne vient pas vraiment d'un bug, mais quasiment. Il se trouve que certaines classes templates possèdent des variables de classes (static). Et quand un exe appelle une dll, l'exe instancie les varioables de classe dans sa zone mémoire, et la dll fait de même. Mais ce ne sont pas les même des 2 côtés. Aujourd'hui, on ne peut passer que les vecteurs entre une dll et un exe.
 
pour plus d'infos:
http://www.dinkumware.com/
 
merci quand même à ceux qui se sont posés la question.

n°53135
__Lolo__
C&#039;est pouleversant !
Posté le 16-08-2001 à 19:21:00  profilanswer
 

SoWhatIn22 a écrit a écrit :

 
merci quand même à ceux qui se sont posés la question.  




de rien  :D  
 
et merci pr la reponse au passage  :jap:


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

  [VC++] Dll et STL: probleme de recopie (???)

 

Sujets relatifs
Un problème sans solution ..... ? MI - 3 ! PlzzzzzzzzProbleme general avec les fenetres Windows
[php ?] hum, je sais pas comment decrire mon probleme...[C++] Probleme avec delay et sleep sous DOS !
[PHP]-problème avec fopenon dirait que j ai comme un problème
[JavaScript + CSS] Heu jai pas trouver de titre a mon probleme.....[HTML] probleme lors de l'envoi de mail par formulaire HTML
[Access VBA] GROS PROBLEME!! URGENT!!problème de DMA
Plus de sujets relatifs à : [VC++] Dll et STL: probleme de recopie (???)


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