编程论坛
注册
登录
编程论坛
→
C语言论坛
动态库除了应用程序目录还可以放哪?
yiyue123
发布于 2020-04-12 16:10, 2495 次点击
如题
除了使用 .lib 来链接外,当然也可以使用 LoadLibrary 在程序运行时动态载入库。
不使用 LoadLibrary,在不将库放在应用程序目录和系统目录的情况下,怎么找到并载入这个库呢?
7 回复
#2
吹水佬
2020-04-12 16:55
要动态载入,又不使用 LoadLibrary 是什么意思?
如动态载入DLL,肯定要知道放在哪里,不在系统默认路径,也要明确一个相对路径,如在当前进程目录下的文件夹。
#3
yiyue123
2020-04-12 17:04
回复 2楼 吹水佬
确实,我的表述有点问题,不是太准确
我的意思是,比如有一个动态库叫 add.dll,它的导入库是 add.lib。
我在链接的时候只用到导入库,没有使用 LoadLibrary,那么 add.dll 必须放在系统路径或 exe 文件目录下才能被发现吗?
#4
吹水佬
2020-04-12 17:34
add.lib是静态载入,编译连接时就放到EXE,无需用add.dll
#5
forever74
2020-04-12 18:52
那么是你的add.lib在LoadLibrary
所以要么是你在那里边特意指定了路径(别问我,我并不知道具体怎么做),
要么就必须像你说的那样把dll放到指定位置。
#6
forever74
2020-04-12 18:56
嗯,不建议,但是你还是可以自己修改环境变量。
#7
yiyue123
2020-04-12 19:32
额,多谢各位
#8
rjsp
2020-04-13 08:30
可以放在一切能找到的路径下,比如 系统 路径、比如 path 指定的路径
此外,还可以用 manifestdependency
1