API32 et appel DLL

Le Forum Windows XP
Scanner Windows pour détecter les erreurs de registre

Ce que nous vous conseillons :

1. Lisez les réponses ci-dessous où vous trouverez des conseils et de l'aide de la part des autres utilisateurs.

2. Avant de faire des modifications sur votre système ou d'installer des logiciels, nous vous recommandons
    fortement de cliquer ici pour scanner Windows afin de détecter les erreurs de registre.



API32 et appel DLL

Messagepar ArthurAuguste » 13 Mar 2011, 10:57

Bonjour,
De mon programme principal, je lance ma DLL par la séquence suivante qui me permet de passer en paramètre l'adresse d'un buffer qui se trouve dans mon programme principal:

typedef INT (WINAPI* PMAFONCTION)(char* );
PMAFONCTION dllEntryAdd1;
hinstdll = LoadLibrary(lpchemindll);
dllEntryAdd1 = (PMAFONCTION)GetProcAddress(hinstdll, dllEntrySet);
iret=dllEntryAdd1(lpcheminlog);

et ça marche impeccable, sauf que maintenant j’ai un problème dans ma DLL,
mais peut-être allez vous me dire que c’est normal :

Dans mon point d’entrée ci-dessus (dllEntryAdd1) de ma dll, je me contente de récupérer l’adresse lpcheminlog qui est l’adresse dans mon programme principal du chemin d’un fichier dans lequel ma dll écrira un peu plus tard et je fais passer cette adresse en variable globale de ma dll (Nomfichier = lpcheminlog) (Nomfichier est une variable globale de ma dll). Je me contente ensuite toujours dans le même point d’entrée de ma dll de lancer un hook pour récupérer les touches du clavier et je reviens immédiatement dans mon programme principal qui lui contient la boucle Getmessage.
Il faut préciser que la callback de traitement des touches se trouve dans ma dll et c’est elle qui ira écrire dans le fichier dont le chemin est dans le programme principal et l’adresse de ce chemin en variable globale de ma dll.
Je tape une ou deux touches tout se passe bien, puis tout à coup la variable globale de ma dll (Nomfichier) perd l’adresse du buffer du programme principal qui contient le nom du fichier. Est-ce normal ? J’ai essayé de mettre Nomfichier en variable static mais ça ne change rien !
Faut-il que je recopie le chemin du fichier en entier (et pas seulement son adresse) dans une variable globale de ma dll ?
Merci
ArthurAuguste
 
Messages: 5
Inscrit le: 09 Mar 2011, 08:12

Retour vers Windows XP

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 6 invités

  •  Liens commerciaux