我已经构建了一个使用第三方dll(dll B)的dll(我们可以将其命名为dll A)。我对dll A的配置如下(IDE是VS 2008):
- 右键项目--->properties--->Configuration Properties--->C/C++--->General--->Additional Include Directories(就是dll B的头文件目录(绝对路径))
- 右键项目--->properties--->Configuration Properties--->Linker--->General--->Additional Library Directories(就是连接dll B的lib目录(绝对路径))
- 右键项目--->properties--->Configuration Properties--->Linker--->Input--->Additional Dependencies(就是上面提到的lib的名字)
dll B是第三方提供的,我知道我实际调用的是dll B,我可以通过lib找到dll B(我说的对吗?)。 我在 jni 的 Java 应用程序中使用 dll A。它在我的电脑上正常工作,但我需要让 Java 应用程序在另一台电脑上运行。我应该怎么做才能让它工作?我可以将绝对路径更改为相对路径吗?如何更改?
最佳答案
可以将B.dll和A.dll放在同一个文件夹,这样App加载时A.dll可以找到B.dll。
以下是 Windows 上用于查找 DLL 的搜索路径。
- 当前进程的可执行模块所在的目录。
- 当前目录。
- Windows 系统目录。 GetSystemDirectory 函数检索此目录的路径。
- Windows 目录。 GetWindowsDirectory 函数检索此目录的路径。
- PATH 环境变量中列出的目录。
关于c++ - 如何将绝对路径转为相对路径,使dll可以在多台计算机上找到它的依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23881628/