begin process at 2012 02 11 11:25:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Variable pour un hook


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Variable pour un hook

lundi 30 janvier 2006 à 12:53:21 | Variable pour un hook

ChrOnOs83

Bonjour à tous,
Il y a un problème sur lequel je bloque depuis déjà plusieurs jours.
J'ai créé une dll pour faire un hook clavier. Quand j'appelle la fonction de la dll pour activer le hook je n'arrive pas a passé une variable a ce dernier.
Pour mieux me faire comprendre voici un bout du code de la dll:
extern "C" void WINAPI Charger(char fichier[])
{
       Socket = sock;
       strcpy(CheminFichier,fichier);
       HKEYBOARD = SetWindowsHookEx ( WH_KEYBOARD, (HOOKPROC)KeyboardProc, HInst, 0 );
 }
CheminFichier est un char[250] déclaré en globale dans la dll.
Je pense que le problème vient du fait que l'instance de la fonction Charger est celle de l'exécutable appelant la dll alors que l'instance du hook (HInst) est l'instance de la dll. Etant un peu un noob il est possible que je me trompe totalement... C'est juste l'impression que tout cela me donne.
Bref au final lorsque je fais un MessageBox de CheminFichier dans le thread du hook ou dans n'importe quelle fonction appelé par ce dernier je me rends compte que la variable est vide. Alors fait ce MessageBox a partir d'une autre fonction extern "C", donc appelé du l'exécutable, CheminFichier vaut ce qu'il devrai valoir!
Je me demande donc comment pouvoir passer ce problème. Peut-être existe t'il une alternative au extern "C" qui ferai en sorte que l'instance donnée a la fonction soit celle de la dll.

Merci d'avance pour toutes réponses!
++

lundi 30 janvier 2006 à 13:07:38 | Re : Variable pour un hook

ymca2003

Il faut faire en sorte que toutes les instances de la dll puissent accéder à la chaine :

Plusieurs solutions :

- Il faut mettre la variable globale CheminFichier dans la section "shared" de la dll.
Brunews a des exemples VC++ dans ses sources.

- Utiliser le FileMapping pour créer une zone de mémoire partageable.

Voir aussi le bouquin de Richter :

[ Lien ]
[ Lien ]
lundi 30 janvier 2006 à 13:37:14 | Re : Variable pour un hook

ChrOnOs83

Merci beaucoup pour ton coup de pouce!
J'ai finalement trouvé la solution grâce au sources de BruNews -> http://www.cppfrance.com/code.aspx?id=25238
Encore merci!!
lundi 30 janvier 2006 à 16:06:55 | Re : Variable pour un hook

Joky

Membre Club
Ah oui mais non ! Parce que moi j'ai déjà essayer de partager une chaîne de caractère avec une section Shared :) et bien impossible à faire :)

if(!Meilleur("Joky")) return ERREUR;<



Cette discussion est classée dans : fonction, variable, dll, hook, cheminfichier


Répondre à ce message

Sujets en rapport avec ce message

DLL et variables [ par CyberP ] Voilà je voudrais donner la possibilitée à une dll d'appeler une fonction de l'application mèreDonc j'ai créé une structure que j'appelle PLUGINSYNC ( Faire une callback vers un exe dans un callback hook d'une dll [ par Suisse00 ] Salut :) J'ai créer un hook sur le clavier dans une DLL, dans le callback du hook j'aimerais faire un callback vers une fonctoin du fichier exe. J'ar Question sur les dll [ par flatou ] Salut a tous Je me pose une question : soit un programme qui a effectuer un hook sur une fonction de la dll kernel32.dll. Si mon deuxieme programme co Hook DLL [ par Taron31 ] Bonjour, Voilà, j'ai écris une petite DLL de hook pour une certaine fonction de l'API win32, je voulais tout simplement savoir comment la charger d Pb Hook.... [ par Mr_Coinche ] Bonjour,J'ai crée une dll très simple appelée "DllMaths.dll", qui contient deux fonctions, "carre" et "cube", je vous laisse deviner ce que ces foncti Pb - stockage de deux valeurs dans une variable [ par lectpe ] Bonjour. J'ai créé une structure représentant une fonction mathématique dans laquelle est défini une variable "Domain" qui correspond au type de la f Pointeur sur char [ par wislam2007 ] salut j'ai un variable de type char, et une fonction qui retourne un pointeur sur un caractère (char), comment faire pour affecter le retour de la fon Probleme : creation d' une interface graphique par dll ... :-s [ par GeroXXXX ] Bonjour a tous :) Alors voici mon problème... Je suis actuellement sur la création d' un plugin en c++ ( dll ) pour Xchat : http://www.ircfr.com/code importer une fonction d'un exe [ par Kian_ix ] salut je cherche un moyen d'importer une fonction a partir d'un fichier .exe comme on pourrait le faire a partir d'un fichier .dll, par exemple: PROC Simple Hook (DLL) qui plante GetMessage ! Je suis nul ou quoi ? [ par dam1dam1 ] Bonjour. Je ne suis pas un pro du Hook et j’ai un peu oublié tout ca, mais vu toutes les bonnes sources et annotations qui trônent ici, je pensais po


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,054 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales