关于钩子函数在WIN98下的应用问题 我在动态库全局函数setHookProc中调用SetWindowsHookEx安装一个鼠标钩子,回调函数正常工作!但是当setHookProc执行完毕跳出后,回调函数就不工作了!什么原因?注意:98下安装VC后,一切正常。卸载VC就会出现上述问题. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 #pragma data_seg("mydata")HINSTANCE glhInstance=NULL; //DLL实例(或者说模块)的句柄。HHOOK hMouseHook=NULL; //鼠标钩子的句柄。HWND mywnd=NULL;unsigned char bIcon = 1;#pragma data_seg()///////////////////////////////BOOL setHookProc(HWND hWnd){ BOOL bResult=FALSE; CRect rcDlg; GetClientRect(hWnd,rcDlg); nDlgHeight = rcDlg.Height(); hMouseHook = SetWindowsHookEx(WH_MOUSE,MouseProc,glhInstance,NULL); if(hMouseHook!=NULL) { bResult=TRUE; } mywnd=hWnd; TRACE("钩子安装完毕"); return bResult; }////////////////////////////回调函数LRESULT CALLBACK MouseProc(int nCode,WPARAM wParam,LPARAM lParam){ TRACE("回调函数正常工作\r\n"); return CallNextHookEx(hMouseHook,nCode,wParam,lParam);}//////////////////////////////////////////////////开始正常工作,有输出“回调函数正常工作”,但是当跳出函数后,输出一个“钩子安装完毕”后,就不再输出任何信息了。说明回调函数不工作了。///////////////////执行结果如下 //////////////////////////////////////WINDOWS 2000下/////////////////////回调函数正常工作回调函数正常工作回调函数正常工作回调函数正常工作回调函数正常工作回调函数正常工作回调函数正常工作回调函数正常工作回调函数正常工作钩子安装完毕回调函数正常工作回调函数正常工作回调函数正常工作回调函数正常工作回调函数正常工作.................////////////////////windows 98下///////////回调函数正常工作回调函数正常工作回调函数正常工作回调函数正常工作回调函数正常工作回调函数正常工作回调函数正常工作回调函数正常工作回调函数正常工作钩子安装完毕//////////////////////////////////////////////////////////////////////////////////////////////////////恳请高手指教! 设置一下#pragma comment(linker,"/Section:mydata,rws") //设置全局共享数据段的属性 hMouseHook = SetWindowsHookEx(WH_MOUSE,MouseProc,glhInstance,0); 共享段应该这样设:#pragma data_seg("mydata")HINSTANCE glhInstance=NULL; //DLL实例(或者说模块)的句柄。HHOOK hMouseHook=NULL; //鼠标钩子的句柄。HWND mywnd=NULL;unsigned char bIcon = 1;#pragma data_seg()#pragma comment(linker,"/SECTION:mydata,rws") http://community.csdn.net/Expert/topic/3507/3507600.xml?temp=.3326837 #pragma comment(linker,"/SECTION:mydata,rws") 增加读写共享 问题解决了,把MFC42d.dll 等6个动态联接接库拷贝到system32下就行了。或者编译时选择加载连接库为静态加载,全编译进去也可以. 提问:MFC与数据库 谁有关于数字图像处理的英文资料!! 急救 帮我看看如何实现 对话框类转换成DIALOGBAR 类????????? 初學者問個簡單的問題﹐如何創建一個線程? 关于色度空间的问题? 如何实现类似于ListBox中选中的状态,并且是透明的??100分相送!! 请高手讲讲COM! 各位大侠!!急问如何SDI中(CFormView)中,打印Form上的控件(ListCtrl)中的内容。 我覺得初學Windows編程不應使用MFC 图象放缩?请高手指点! 关于“无缝连接”再加50分 图形闪烁
HHOOK hMouseHook=NULL; //鼠标钩子的句柄。
HWND mywnd=NULL;
unsigned char bIcon = 1;
#pragma data_seg()
///////////////////////////////
BOOL setHookProc(HWND hWnd)
{
BOOL bResult=FALSE;
CRect rcDlg;
GetClientRect(hWnd,rcDlg); nDlgHeight = rcDlg.Height();
hMouseHook = SetWindowsHookEx(WH_MOUSE,MouseProc,glhInstance,NULL); if(hMouseHook!=NULL) {
bResult=TRUE;
} mywnd=hWnd; TRACE("钩子安装完毕");
return bResult;
}
////////////////////////////回调函数
LRESULT CALLBACK MouseProc(int nCode,WPARAM wParam,LPARAM lParam)
{
TRACE("回调函数正常工作\r\n");
return CallNextHookEx(hMouseHook,nCode,wParam,lParam);}//////////////////////////////////////////////////
开始正常工作,有输出“回调函数正常工作”,但是当跳出函数后,输出一个“钩子安装完毕”后,就不再
输出任何信息了。说明回调函数不工作了。///////////////////执行结果如下 /////////////////////
/////////////////WINDOWS 2000下/////////////////////
回调函数正常工作
回调函数正常工作
回调函数正常工作
回调函数正常工作
回调函数正常工作
回调函数正常工作
回调函数正常工作
回调函数正常工作
回调函数正常工作
钩子安装完毕
回调函数正常工作
回调函数正常工作
回调函数正常工作
回调函数正常工作
回调函数正常工作
......
.....
......
////////////////////windows 98下///////////回调函数正常工作
回调函数正常工作
回调函数正常工作
回调函数正常工作
回调函数正常工作
回调函数正常工作
回调函数正常工作
回调函数正常工作
回调函数正常工作
钩子安装完毕
///////////////////////////////////////////////////
///////////////////////////////////////////////////
恳请高手指教!
#pragma data_seg("mydata")HINSTANCE glhInstance=NULL; //DLL实例(或者说模块)的句柄。
HHOOK hMouseHook=NULL; //鼠标钩子的句柄。
HWND mywnd=NULL;
unsigned char bIcon = 1;
#pragma data_seg()
#pragma comment(linker,"/SECTION:mydata,rws")
增加读写共享