请问:静态链接库的问题

leetow2003 2012-03-21 09:58:47
我做了个全局构子DLL,可以使用了,
现在我想做个静态构子链接库,
我是这样做的:
File=>New=>Win32 Static Library
做了两个文件,一个是头文件,一个是
实现文件,
头文件 hook.h
extern "C" void SetHook();
extern "C" void UnSetHook();

实现文件 hook.cpp
#include <windows.h>
#include <stdio.h>
#include "hook.h"

HHOOK g_hHook=NULL;

LRESULT CALLBACK KeyboardProc(
int code, // hook code
WPARAM wParam, // virtual-key code
LPARAM lParam // keystroke-message information
)
{

if(wParam==VK_SPACE)
{
return 1;
}
return CallNextHookEx(g_hHook,code,wParam,lParam);
}


void SetHook()
{
HMODULE hMod;
hMod=GetModuleHandle("Hook.lib");
if(NULL==hMod)
Beep(1000,1000);
else
g_hHook=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,hMod,0);
}


void UnSetHook()
{
UnhookWindowsHookEx(g_hHook);
}
我写了个调用程序,发觉在安装钩子时,GetModuleHandle函数出错,
是不是不能获得静态库的句柄呢?
请问该怎么解决呢(我只想用静态库的,因为动态我已经完成了)
...全文
34 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lactoferrin 2012-03-21
  • 打赏
  • 举报
回复
静态库做不到
Saleayas 2012-03-21
  • 打赏
  • 举报
回复

hMod=GetModuleHandle("Hook.lib");


换成


hMod=NULL;
GetModuleHandleExW(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, (LPCWSTR)KeyboardProc, &hMod);


oyljerry 2012-03-21
  • 打赏
  • 举报
回复
钩子需要用动态库.

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧