小生剛剛開始學dll和hook,做了一個程式,用來取得指定密碼框里的密碼!取得密碼框hwnd的方法同spy++,按下左鍵然后拖動至目標窗口的方式.找到hwnd后我會把這個hwnd傳到我的hook.dll中,hook.dll提供inithook方法給主程式用來裝上鉤子,然后如果用戶把光標放到密碼框里后按f10就會用messagebox顯示出密碼框里的密碼,現在的問題是:我本來已經把密碼框的hwnd傳給了dll,並賦給了dll里的一個全局變數g_hWndMain,但是在按了f10后我髮現,dll里的這個全局變數的值又變回了原來的0值,這是怎麼回事啊.

解决方案 »

  1.   


    #pragma data_seg("Shared")
    g_hWndMain
    #pragma data_seg()
    // Instruct the linker to make the Shared section
    // readable, writtable and shared
    #pragma comment(linker, "/section:Shared,rws")
      

  2.   


    #pragma data_seg("Shared")
    HWND g_hWndMain
    #pragma data_seg()
    // Instruct the linker to make the Shared section
    // readable, writtable and shared
    #pragma comment(linker, "/section:Shared,rws")
      

  3.   

    謝謝MostNeed和papaya_stone(^-^)shentong(^-^)的幫忙,正如papaya_stone所講,應該是沒放到共享數據段的問題,我先試一下.謝謝!