很简单的问题:调用动态库是先搜寻本地的还是system32下的
想问一下调用动态库的话,系统查找动态库的顺序。
比如说我要调用msvcp60.dll。
1、是先去搜索环境变量中定义路径中的动态库,还是先搜素程序所在文件夹有无此动态库?
2、加入程序所在文件夹有msvcp60.dll,system32下本来也是有msvcp60.dll的,那么此时调用的话是怎么个调用法?如果只调用其中的一个动态库,那两个路径相同动态库版本不同为什么还会造成程序运行问题?
3、一些系统安装时就有的动态库,是不是不同操作系统还会版本不同,比如说WIN2003与WIN XP。因为发现有些程序运行在XP没问题但是一跑到2003就可能有问题。
[解决办法]
然后按下列顺序搜索 DLL: 1、当前进程的可执行模块所在的目录。 2、当前目录。 3、Windows 系统目录。GetSystemDirectory 函数检索此目录的路径。 4、Windows 目录。GetWindowsDirectory 函数检索此目录的路径。 5、PATH 环境变量中列出的目录。
对于不同的操作系统,因为提供的基础dll不一样,所以最好是把所有的dll都打上,这样多种操作系统的情况下会稳定得多~~
[解决办法]
如果要想可靠性高些,打包的时候把稳定可靠的都打上,不要去找路径,直接跟可执行文件放一起。
[解决办法]