调用dll中的函数。。。

wangrenjie_jeny 2009-02-24 10:56:36
想调用dll中的函数,没有成功,请大家帮忙看下!


dll中的卸载钩子函数:
BOOL __declspec(dllexport) UnHook()
{
BOOL unhooked = UnhookWindowsHookEx(hkb);
return unhooked;
}

载入dll进行调用如下:
static HINSTANCE hDllInst;

typedef BOOL ( *MYFUNHOOK_keb)();
MYFUNHOOK_keb MyUnhook = NULL;

if(hDllInst=LoadLibrary((LPCTSTR)"keyboard.dll"))
{
WriteLogString("载入键盘钩子");

MyUnhook = (MYFUNHOOK_keb)GetProcAddress(hDllInst,"UnHook");
if(MyUnhook)
{
MyUnhook();
WriteLogString("键盘钩子卸载成功");
}
FreeLibrary(hDllInst);
}

怎么就没反应啊!急死。。。
...全文
93 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
叶落寒山 2009-02-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 huayehanshan 的回复:]
C/C++ code
if(MyUnhook) // MyUnhook是函数,你这么写啥意思?
{
MyUnhook();
WriteLogString("键盘钩子卸载成功");
}
改成下面试试

if(MyUnhook())
{
WriteLogString("键盘钩子卸载成功");
}
[/Quote]

看看你是怎么调用函数的。if中写的对吗?
alvinsunxiang 2009-02-24
  • 打赏
  • 举报
回复
是不是你的回调函数的调用类型有问题?
wangrenjie_jeny 2009-02-24
  • 打赏
  • 举报
回复
我是在推出的时候才响应以上内容的啊!
DarknessTM 2009-02-24
  • 打赏
  • 举报
回复
我说你 load dll 后立马 就free了

那你的钩子 当然就无效了

要在你程序退出的时候再free
DarknessTM 2009-02-24
  • 打赏
  • 举报
回复
if(hDllInst=LoadLibrary((LPCTSTR)"keyboard.dll"))

你不会是以unicode方式编译的吧

请用 TEXT("keyboard.dll")
叶落寒山 2009-02-24
  • 打赏
  • 举报
回复

if(MyUnhook) // MyUnhook是函数,你这么写啥意思?
{
MyUnhook();
WriteLogString("键盘钩子卸载成功");
}
改成下面试试

if(MyUnhook())
{
WriteLogString("键盘钩子卸载成功");
}
wangrenjie_jeny 2009-02-24
  • 打赏
  • 举报
回复
没有啊,dll可以载入的,就是在函数调用那块可能有问题的!
liuzxchina 2009-02-24
  • 打赏
  • 举报
回复
你的Log有没有错误信息
wdq0916 2009-02-24
  • 打赏
  • 举报
回复
跟踪进入DLL中看看
wangrenjie_jeny 2009-02-24
  • 打赏
  • 举报
回复
问题解决了,谢谢老大。。。!
cnzdgs 2009-02-24
  • 打赏
  • 举报
回复
那就是函数的导出名称不是"UnHook"。用def文件导出,或者函数定义前面加extern "C"。
wangrenjie_jeny 2009-02-24
  • 打赏
  • 举报
回复
是的啊!
cnzdgs 2009-02-24
  • 打赏
  • 举报
回复
“没反应”是什么意思?GetProcAddress失败?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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