社区
进程/线程/DLL
帖子详情
多个DLL导出同一个函数!这种情况是如何调用的?
bacy001
2011-03-26 08:54:21
一个目录下有:
A.exe B.dll C.dll D.dll 一共四个文件!
A 中调用了函数 void abcd(void);
B.dll C.dll D.dll 均导出了“void abcd(void)”这个函数。
问题:
1.系统会把 B、C、D 三个 Dll 都加载到程序 A 的进程空间么?
2.如果三个 Dll 都已经加载到了 A 的进程空间,那么 A 是如何定位函数“void abcd(void)”的?
...全文
137
8
打赏
收藏
多个DLL导出同一个函数!这种情况是如何调用的?
一个目录下有: A.exe B.dll C.dll D.dll 一共四个文件! A 中调用了函数 void abcd(void); B.dll C.dll D.dll 均导出了“void abcd(void)”这个函数。 问题: 1.系统会把 B、C、D 三个 Dll 都加载到程序 A 的进程空间么? 2.如果三个 Dll 都已经加载到了 A 的进程空间,那么 A 是如何定位函数“void abcd(void)”的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wltg2001
2011-03-27
打赏
举报
回复
用LoadLibrary加GetProcAddress就行了。
beginnow
2011-03-27
打赏
举报
回复
楼主知道一个进程是如何创建的吗?
如果不是显式加载那么这个调用在exe生成的时候就已经确定了
exe的IMPORT节不仅存储了函数名还有dll的名字
sunlin7
2011-03-27
打赏
举报
回复
如果使用LoadLibraray/GetProcAddress进行显式就可以了。
如果是隐式调用,则必须在项目中引入dll对应的lib,即如果打算调用A.dll中函数,则需要在项目中引入A.lib. 如果同时引入A.lib, B.lib...则链接器会发现多重定义而报错。
bacy001
2011-03-27
打赏
举报
回复
如果在程序 A 中,没有明确的 GetProcAddress GetModuleHandle 的指令呢?
IsItNothing
2011-03-26
打赏
举报
回复
用命名空间。
Eleven
2011-03-26
打赏
举报
回复
看你的GetProcAddress的第一个参数指定的是哪个HMODULE(通过LoadLibrary函数返)
Lactoferrin
2011-03-26
打赏
举报
回复
[Quote=引用楼主 bacy001 的回复:]
一个目录下有:
A.exe B.dll C.dll D.dll 一共四个文件!
A 中调用了函数 void abcd(void);
B.dll C.dll D.dll 均导出了“void abcd(void)”这个函数。
问题:
1.系统会把 B、C、D 三个 Dll 都加载到程序 A 的进程空间么?
2.如果三个 Dll 都已经加载到了 A 的进程空间,那么 A 是如……
[/Quote]
A.exe在其导入目录表中指定dll名称,在导入地址表中指定导入符号名
或者使用GetModuleHandle得到dll基地址,然后使用GetProcAddress得到函数地址
fishion
2011-03-26
打赏
举报
回复
AfxSetResourceHandle
从内存加载
DLL
完整代码及示例
这是一个从内存(资源形式)直接加载并
调用
DLL
中
函数
的例子。 x
Dll
工程只是一个测试用的
dll
,附上代码,编译出的x
Dll
.
dll
直接放在testLoad
Dll
工程目录下 testLoad
Dll
是实际测试代码,从资源直接加载
Dll
并
调用
其...
DLL
的
导出
函数
DLL
的
导出
函数
,__declspec(
dll
export),.def模块定义文件,extern “C”区别一,__declspec(
dll
export)二,.DEF模块定义文件三,__declspec(
dll
export)和def文件的区别1,显式
调用
2,隐式
调用
四,结论 &...
Windows进程常用
DLL
模块注入技术
课程结合多种Windows进程常用
DLL
注入技术。... 导入表注入,涉及PE相关知识点,增加区段,移动导入表,增加导入表、增加
导出
函数
,修复表项数据等。 内核驱动级
Dll
模块注入技术,内核驱动入门扩展。
DLL
如何
导出
函数
模块定义或 DEF 文件 (*.def) 文件是文本文件,其中包含一个或
多个
描述
DLL
的各种特性的模块语句。 如果没有使用 __declspec(
dll
export) 关键字来
导出
DLL
的
函数
,则
DLL
需要 DEF 文件。 最小的 DEF 文件...
VC++
DLL
导出
函数
经常使用VC6的Dependency查看
DLL
导出
函数
的名字,会发现有
DLL
导出
函数
的名字有时大不相同,导致不同的原因大多是和编译
DLL
时候指定
DLL
导出
函数
的界定符有关系。 VC++支持两种语言:即C/C++,这也是造成
DLL
导出
...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章