IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

SetWindowsHookEx - Erreur 1427


Sujet :

C

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 89
    Points : 102
    Points
    102
    Par défaut SetWindowsHookEx - Erreur 1427
    Bonjour,

    Le tutorial sur les Dlls de Melem, dispo à l'adresse suivante, me paraissait parfait comme point de départ de ce que je veux faire :
    Les bibliothèques dynamiques (DLLs)

    Il y a le code source d'un hook.
    Problème : lorsque je copie/colle, puis compile tout ca avec MinGW, j'ai une erreur renvoyée par SetWindowsHookEx :
    ERROR_INVALID_FILTER_PROC
    1427 (0x593)
    Invalid hook procedure.

    La Dll est bien chargée (le fichier hooklog.txt est créé), mais rien de plus.

    J'ai dû louper quelque chose de très simple, mais moi et le langage C... bof quoi !

    Quelqu'un saurait-il ce qui cloche ?

    Merci d'avance.

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Que dit ton lanceur si tu remplaces
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #include <stdio.h>
    #include <windows.h>
     
    int main()
    {
        HMODULE hmodHook = LoadLibrary("hook.dll");
        HHOOK hHook = SetWindowsHookEx(WH_CALLWNDPROC, (HOOKPROC)GetProcAddress(hmodHook, "CallWndProc"), hmodHook, 0);
        if (hHook)
        {
            printf("Appuyez sur ENTREE pour terminer.\n");
            getchar();
            UnhookWindowsHookEx(hHook);
        }
        FreeLibrary(hmodHook);
        return 0;
    }
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #include <stdio.h>
    #include <windows.h>
     
    int main()
    {
        HMODULE hmodHook = LoadLibrary("hook.dll");
        HOOKPROC proc = (HOOKPROC)GetProcAddress(hmodHook, "CallWndProc");
        if(NULL == proc) {
            puts("Impossible de charger la fonction voulue");
        } else {
            HHOOK hHook = SetWindowsHookEx(WH_CALLWNDPROC, proc , hmodHook, 0);
            if (hHook)
            {
                printf("Appuyez sur ENTREE pour terminer.\n");
                getchar();
                UnhookWindowsHookEx(hHook);
            }
        }    
        FreeLibrary(hmodHook);
        return 0;   
    }
    Question subsidiaire : quelle convention d'appel utilises tu ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 89
    Points : 102
    Points
    102
    Par défaut
    Salut mabu,

    Merci pour ta réponse : tu m'as mis sur la bonne voie.

    Effectivement, GetProcAddress renvoie NULL.

    Avec un petit fichier hook.def contenant les 2 lignes suivantes, et en compilant la dll avec, ca marche tout de suite mieux !
    Résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SetWindowsHookEx: Erreur 0x57
    Par mogg41 dans le forum C
    Réponses: 1
    Dernier message: 23/05/2010, 18h50
  2. Erreur 1428 SetWindowsHookEx
    Par Invité dans le forum C
    Réponses: 6
    Dernier message: 14/02/2010, 09h59
  3. Réponses: 2
    Dernier message: 27/05/2002, 19h46
  4. erreur IDL:omg.org/CORBA/MARSHAL:1.0
    Par Pinggui dans le forum CORBA
    Réponses: 3
    Dernier message: 13/05/2002, 15h05
  5. [Kylix] Erreur objet
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo