LoadLibrary调用失败?

niefuhua 2005-09-02 08:42:47
我写了一个动态链接库,里面有一个函数CallWndProc,当我隐式加载的时候能够成功调用函数,但是显示加载时LoadLibrary总是失败:
hinstDLL = ::LoadLibrary((LPCTSTR)"HookQQDll.dll");//总是失败
该动态链接库文件已经放到调用LoadLibrary函数的可执行文件相同目录

调用GetLastError返回0x00000006

请大家帮我看看错在什么地方?
先谢谢大家了
...全文
2108 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
niefuhua 2005-09-05
  • 打赏
  • 举报
回复
谢谢大家!我的问题已经解决了:
其实我的LoadLibrary是成功了的,只是dll里面没有EXPORTS所以下载函数不成功
,后来我在DLL中加入了一个的DEF文件,就能调用其中的函数了。
但我还有一点不明白的是错误号还是6。(注:在调用LoadLibrary之前调用GetLastError返回0)
goodname008 2005-09-04
  • 打赏
  • 举报
回复
不要在VC环境中按 Ctrl+F5 执行程序,编译后,到相应的Debug或Release目录中执行.exe。
因为如果在VC环境中按 Ctrl+F5 运行时,当前目录是VC工程文件所在目录,并不是.exe文件所在目录。
gaoshengqiang 2005-09-03
  • 打赏
  • 举报
回复
hinstDLL = ::LoadLibrary((LPCTSTR)"HookQQDll.dll");是不是返回NULL?如果不是,那就是成功了啊。此时调用GetLastError()获得的是以前的错误代码
niefuhua 2005-09-03
  • 打赏
  • 举报
回复
hinstDLL = ::LoadLibrary(TEXT("HookQQDll.dll"));的返回直有时为
0x00ea0000
有时为
0x00eb0000

我看文档说LoadLibrary失败应该返回NULL,但我失败却返回0x00ea0000或者0x00eb0000
niefuhua 2005-09-03
  • 打赏
  • 举报
回复
还是一样的错误!还有没有其它办法?

但是我这样调用可以成功:
hinstDLL = ::LoadLibrary((LPCTSTR)"Kernel32.dll");//成功

是不是隐式链接和显式链接对应的动态链接库建立方法不一样啊???
xwzxwz 2005-09-03
  • 打赏
  • 举报
回复
niefuhua(阳光)提到:
hinstDLL = ::LoadLibrary(TEXT("HookQQDll.dll"));的返回直有时为
0x00ea0000
有时为
0x00eb0000

我看文档说LoadLibrary失败应该返回NULL,但我失败却返回0x00ea0000或者0x00eb0000





没搞错那就不是失败了!!!!!
niefuhua 2005-09-03
  • 打赏
  • 举报
回复
一切都可以,就是不能成功!郁闷之极!!!
Tonyb 2005-09-03
  • 打赏
  • 举报
回复
查看一下你的搜索目录是否存在有两个同名的dll链接库HookQQDll.dll
另用_T("HookQQDll.dll")试试
HaoyuTan 2005-09-02
  • 打赏
  • 举报
回复
The handle is invalid.

这个是错误代码6对应的错误信息.

改成:

hinstDLL = ::LoadLibrary(TEXT("HookQQDll.dll"));

试一试
windcsn 2005-09-02
  • 打赏
  • 举报
回复
哪个DLL在路径下面吗?

15,471

社区成员

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

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