BOOL b=GetSpaceState();//
while(b)
{
b=GetSpaceState();}
GetSpaceState()是键盘钩子DLL中的函数,当WM_KEYDOWN时返回值为TRUE;若无WM_KEYDOWN时返回值为FALSE。在另外的程序中写入上述几行代码,结果由于在DLL中初始化GetSpaceState()返回值为FALSE,所以上述几行代码陷入死循环。请问为何上述代码为何不能检测到WM_KEYDOWN而跳出循环。
DLL中相关函数如下:
LRESULT CALLBACK LauncherHook(int nCode,DWORD wParam,DWORD lParam)
{
LRESULT Result=CallNextHookEx(Hook,nCode,wParam,lParam);
if(nCode==HC_ACTION)
{
if(lParam&0x80000000)
{
if(wParam==VK_RETURN)
{
spacepressed=TRUE;
} }


}
else 
{
spacepressed=FALSE; }
return Result;
}
DLLExport BOOL WINAPI GetSpaceState()
{
return spacepressed;
}