Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: em bị Lỗi bad image khi cài đặt hook !!! , ai biết lỗi này sửa thế nào không ạ !!!!

  1. #1
    Ngày gia nhập
    09 2018
    Bài viết
    2

    Mặc định em bị Lỗi bad image khi cài đặt hook !!! , ai biết lỗi này sửa thế nào không ạ !!!!

    em install hook bằng hàm SetWindowsHookEx()
    em có 2 file : 1 file main và 1 file dll

    code file main :
    #include <windows.h>
    #include <stdio.h>
    #include <iostream>
    using namespace std;
    HHOOK hookHandle;
    HOOKPROC hkprcSysMsg;
    HINSTANCE hinsDLL;
    LRESULT CALLBACK FillKeyboard(int nCode,WPARAM wParam,LPARAM lParam);
    int main(){
    hinsDLL = LoadLibrary(TEXT("D:/Knight/LT/Script/hookt.dll"));
    hkprcSysMsg = (HOOKPROC)GetProcAddress(hinsDLL,"FillKeyboard");
    hookHandle = SetWindowsHookEx(WH_KEYBOARD_LL,hkprcSysMsg,hinsDL L,0);
    if (hookHandle == NULL)
    {
    cout <<"error"<< endl;
    }
    }

    code file dll :
    #include <windows.h>

    //vùng nhớ dùng chung, chứa biến handle của Hook
    #pragma data_seg("SHARED_DATA")
    HHOOK hGlobalHook = NULL;
    #pragma data_seg()

    //hàm lọc sự kiện nhấn phím
    __declspec(dllexport) LRESULT CALLBACK FillKeyboard(int nCode, WPARAM wParam, LPARAM lParam)
    {
    //nếu sự kiện là nhấn phím và mã phím là Enter
    if ((nCode == HC_ACTION) && (wParam == 13))
    {
    MessageBox(0, "sonhn say hello ", "Hello", 0);
    return 1;
    }

    //gọi Filter Function kế tiếp trong chuỗi các Filter Function
    return CallNextHookEx(hGlobalHook, nCode, wParam, lParam);
    }

    //hàm ấn định biến hGlobalHook tại vùng nhớ dùng chung
    __declspec(dllexport) void SetGlobalHookHandle(HHOOK hHook)
    {
    hGlobalHook = hHook;
    }
    khi em thực thi file exe thì bị báo lỗi :
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		Untitled.png
Lần xem:	2
Size:		8.3 KB
ID:		64448
    ai biết cách khắc phục không ạ , em xin cảm ơn anh chị ạ

  2. #2
    Ngày gia nhập
    08 2017
    Bài viết
    1,626

    Trích dẫn Nguyên bản được gửi bởi oneonea Xem bài viết
    em install hook bằng hàm SetWindowsHookEx()
    em có 2 file : 1 file main và 1 file dll ...
    Lâu, ôn lại xi xem nó thế nào.

    code file main :
    C++ Code:
    1. #include <windows.h>
    2. #include <stdio.h>
    3. #include <iostream>
    4. using namespace std;
    5.  
    6. HHOOK hookHandle;
    7. HOOKPROC hkprcSysMsg;
    8. HINSTANCE hinsDLL;
    9. LRESULT CALLBACK FillKeyboard(int nCode,WPARAM wParam,LPARAM lParam);
    10.  
    11. int main(){
    12.     hinsDLL = LoadLibrary(TEXT("D:/Knight/LT/Script/hookt.dll"));
    13.     hkprcSysMsg = (HOOKPROC)GetProcAddress(hinsDLL,"FillKeyboard");
    14.     hookHandle = SetWindowsHookEx(WH_KEYBOARD_LL,hkprcSysMsg,hinsDLL,0);
    15.     if (hookHandle == NULL)
    16.     {
    17.         cout <<"error"<< endl;
    18.     }
    19. }

    biên dịch, chạy thử:


    code file dll :
    C++ Code:
    1. #include <windows.h>
    2.  
    3. //vùng nhớ dùng chung, chứa biến handle của Hook
    4. #pragma data_seg("SHARED_DATA")
    5. HHOOK   hGlobalHook = NULL;
    6. #pragma data_seg()
    7.  
    8. //hàm lọc sự kiện nhấn phím
    9. __declspec(dllexport) LRESULT CALLBACK FillKeyboard(int nCode, WPARAM wParam, LPARAM lParam)
    10. {
    11.     //nếu sự kiện là nhấn phím và mã phím là Enter
    12.     if ((nCode == HC_ACTION) && (wParam == 13))
    13.     {
    14.         MessageBox(0, "sonhn say hello :)", "Hello", 0);
    15.         return 1;
    16.     }
    17.  
    18.     //gọi Filter Function kế tiếp trong chuỗi các Filter Function
    19.     return CallNextHookEx(hGlobalHook, nCode, wParam, lParam);
    20. }
    21.  
    22. //hàm ấn định biến hGlobalHook tại vùng nhớ dùng chung
    23. __declspec(dllexport) void SetGlobalHookHandle(HHOOK hHook)
    24. {
    25.    hGlobalHook = hHook;
    26. }

    không biết bạn biên dịch thế nào, bằng cái chi, tôi thử cách này, có thay đổi
    hinsDLL = LoadLibrary(TEXT("D:/Knight/LT/Script/hookt.dll"));
    thành
    hinsDLL = LoadLibrary(TEXT("hookt.dll")); //đặt chung cùng thư mục biên dịch, chạy thử.

  3. #3
    Ngày gia nhập
    09 2018
    Bài viết
    2

    dạ em cảm ơn anh !!!

Tags của đề tài này

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn