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.