动态链接库 DLL 重名

最近遇到一个问题,公司产品中某个动态链接库的名字和win2008 terminal service的一个d ll重名。因此老是调到windows的dll,出错。查了一下dll的调用顺序,确信修改path环境变量是行不通的。于是只能手动把那个dll copy到所有需要用的程序所在的目录下。(由于修改dll的名字影响太大了)。

动态链接的方法

链接动态链接库里的函数的方法如下:

加载时动态链接(Load_time dynamic linking)

如上所述。Windows搜索要装入的DLL时,按以下顺序:
应用程序所在目录→当前目录→Windows SYSTEM目录→Windows目录→PATH环境变量指定的路径。

运行时动态链接(Run_time dynamic linking)

程 序员使用LoadLibrary把DLL装入内存并且映射DLL到调用进程的虚拟地址空间(如果已经作了映射,则增加DLL的引用计数)。首 先,LoadLibrary搜索DLL,搜索顺序如同加载时动态链接一样。然后,使用GetProcessAddress得到DLL中输出函数的地址,并 调用它。最后,使用FreeLibrary减少DLL的引用计数,当引用计数为0时,把DLL模块从当前进程的虚拟空间移走。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值