首页 > Windows开发 > 详细

PC-windows系统中exe调用dll搜索路径顺序

时间:2020-06-17 15:59:29      阅读:149      评论:0      收藏:0      [点我收藏+]
相关资料:
https://www.zhihu.com/question/51582693

dll的加载有显示链接(程序运行时候LoadLibrary动态加载)和隐式链接(编译时候就需要)。

Windows 用来定位 DLL 的搜索路径

如果我没有记错,Qt默认是采用的显示链接openssl库,所以应该编译是没有问题的,只是运行的时候提示找不到。
Windows系统上需要自己安装OpenSSL,不是自带的。但是很多软件可能在安装的时候就顺带安装了OpenSSL,所以就不需要再安装了。(此处的是有条件的,后面再说)

因为Qt不可能知道每台电脑上的OpenSSL库的安装路径,所以LoadLibrary的时候也不可能指定绝对路径。所以这里去加载ssl库的时候,顺序大致是这样的:
1、先从已经加载到内存的dll中找同名的dll,找到了就加载。
2、从系统已知dll列表查找。这个列表记录在注册表里面。
3、应用程序所在目录。
4、当前工作目录。
5、系统目录(%System%)
6、Windows目录(%Windir%)
7、环境变量PATH中指定的目录(%PATH%)
更具体的可以看这里 Dynamic-Link Library Search Order

关于你的问题中 ::\ 这个路径的,我也不知道。
然后关于是哪一个软件带了openssl的,我也不确定。

PC-windows系统中exe调用dll搜索路径顺序

原文:https://www.cnblogs.com/FKdelphi/p/13152723.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!