免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3182 | 回复: 5
打印 上一主题 下一主题

加载了一个dll,是否还要加载它依赖的dll [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-20 09:36 |只看该作者 |倒序浏览
程序里边使用LoadLibrary动态加载了一个dll

  1. h = LoadLibrary("a.dll");
  2. func = GetProcAddress(h, "someFunction");
复制代码


但是a.dll还依赖b.dll,c.dll,d.dll

我是否还要把其它三个dll都Load进来呢?

另一个问题
我的编译环境是Dev-C++4.9.9.2
在使用dlltool的时候, 怎么知道def文件里边
应该EXPORTS什么函数呢?因为这些函数都是
_imp__SomeFunction@4等等的,而不是头文件
里边定义的样子

[ 本帖最后由 jakieyoung 于 2006-10-20 09:38 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-03-31 15:26 |只看该作者
路过,顶起来~

论坛徽章:
0
3 [报告]
发表于 2009-03-31 15:29 |只看该作者
1. 不用;
2. 就是那些奇怪的名字,或者写dll时使用extern "C".

论坛徽章:
0
4 [报告]
发表于 2009-03-31 16:10 |只看该作者

回复 #1 jakieyoung 的帖子

这样的符号名表示函数遵守 __stdcall 调用约定。
http://msdn.microsoft.com/en-us/library/aa271995(VS.60).aspx

论坛徽章:
0
5 [报告]
发表于 2009-03-31 21:59 |只看该作者
DLL的加载分为静态加载和动态加载。

一个DLL使用另外一个DLL也是通过“静态加载”或者“动态记载”。
你只需要关心你怎样使用你所需要的DLL。

论坛徽章:
0
6 [报告]
发表于 2009-03-31 23:10 |只看该作者
在def文件中定义你要导出的函数的名字,可以直接用函数名(如果没有重载的话),这样方便其它模块使用
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP