HINSTANCE glhInstance=AfxGetApp()->m_hInstance;//DLL实例句柄
这一句不对吧,全局变量初始化时,可能你的DllMain还没有被调用。
试试这样
HINSTANCE glhInstance = NULL;
然后在DllMain被以DLL_PROCESS_ATTACH调用时初始化:
if (dwReason == DLL_PROCESS_ATTACH)
{
   ...
   glhInstance = hInstance;
   ...
}

解决方案 »

  1.   

    hInstance 是哪儿了的,请告知
    还有我本来是将 glhInstance = NULL 的,但 SetWindowHookEx(...) 还是出问题
    msdn 不是说将SetWindowHookEx 中的hInstance =NULL, 并且 ThreadID=0 时会返回 Error
    请告知
    谢谢了!!
      

  2.   

    1.glhInstance=NULL,然后在dllmain中将其赋值
    2.试试在mouseproc前将其输出,加上_declspec(dllexport)
      

  3.   

    应该就是glhInstance没有赋值了。赋值后应该是可以的。
    我以前是设一个全局变量,在dllmain里把全局变量赋上值。呵呵,办法是不太好,可也用得不错,因为我的那个程序很小
      

  4.   

    glhInstance=LoadLibray("your dll file");
      

  5.   

    hInstance不是DllMain的参数吗?当系统调用DllMain,它会把你的Dll模块的句柄传给DllMain的hInstance参数。