下面是通过导入动态DLL,安装操作系统钩子的代码,我现在遇到的问题是,如果不加while(1){}这段代码,在导入dll之后程序就会退出,但是程序退出之后,Hook就失效了,这是我不想看到的,如果加上while(1){},CPU占有率就会上升到50%,这也是我不希望看到的。int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0; // 初始化 MFC 并在失败时显示错误
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: 更改错误代码以符合您的需要
_tprintf(_T("错误: MFC 初始化失败\n"));
nRetCode = 1;
}
else
{
// TODO: 在此处为应用程序的行为编写代码。
HMODULE m_library;
m_library = LoadLibrary(_T("\\WordHook.dll")); if ( m_library != NULL )
{
typedef HRESULT (*SetGlobalHook)();
SetGlobalHook pFunc;
pFunc = (SetGlobalHook)::GetProcAddress( m_library , "SetGlobalHook"); if ( pFunc != NULL )
{
(*pFunc)();
}
}
} while(1)
{
//::Sleep(10);
} return nRetCode;
}大家帮我看看吧,谢谢!