error C2440: “类型转换”: 无法从“overloaded-function”转换为“HOOKPROC”
1>        在匹配目标类型的范围内没有具有该名称的函数
         #pragma   data_seg("Shared")   
HHOOK hHook;
#pragma   data_seg()  
#pragma   comment(linker,"/section:Shared,rws")   
hHook   =   ::SetWindowsHookEx(WH_CBT,(HOOKPROC)HookProc,NULL,0); 

解决方案 »

  1.   

    一个进程内钩子  HHOOK 类型的变量应该在哪里定义
      

  2.   

     LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam)
    {
    return 0;
    }
      

  3.   

     LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam)
    {
    return 0;
    }
      

  4.   

    把它们放在一个DLL里面的吗?hHook  =  ::SetWindowsHookEx(WH_CBT,(HOOKPROC)HookProc,NULL,0); 
    不是NULL,是DLL的句柄。
      

  5.   

     进程内钩子 不用放在DLL里面
      

  6.   

    用static 
    而且SetWindowsHookEx(WH_CBT, CbtProc, NULL, GetCurrentThreadId());
    http://www.wangchao.net.cn/bbsdetail_42858.html
    看他