.NET dll访问中的一个问题

最近项目开发中碰到的,没有找到微软相关的document,不知道是不是未存档的,所以在这里说一下。

情况是这样的,有一堆dll放在目录A,另外一个exe程序放在目录B。目录A当中dll有些是clr支持的,有些是纯win32的。这些win32 dll之间通过隐式调用(.h头文件&.lib文件)时一切正常,但是如果是通过LoadLibrary或者相关的函数显式调用则必须指定dll文件的完整路径,否则尽管它们都在同一个目录A中,运行时系统也只会去搜索exe所在的目录B,因为在目录B中找不到指定文件名的dll将发生系统错误。解决方法最简单的就是利用SetDllDirectory函数动态的添加目录A到系统搜索目录中。

另外,经过实验,.NET 3.5(VS2008Beta2)中ms已经解决了这个问题,将caller dll所在目录默认已经加入到了callee dll的搜索路径中,这样直接就可以通过文件名调用了。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值