c++ - 如何将绝对路径转为相对路径,使dll可以在多台计算机上找到它的依赖?

标签 c++ visual-studio dll java-native-interface

我已经构建了一个使用第三方dll(dll B)的dll(我们可以将其命名为dll A)。我对dll A的配置如下(IDE是VS 2008):

  1. 右键项目--->properties--->Configuration Properties--->C/C++--->General--->Additional Include Directories(就是dll B的头文件目录(绝对路径))
  2. 右键项目--->properties--->Configuration Properties--->Linker--->General--->Additional Library Directories(就是连接dll B的lib目录(绝对路径))
  3. 右键项目--->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 的搜索路径。

  1. 当前进程的可执行模块所在的目录。
  2. 当前目录。
  3. Windows 系统目录。 GetSystemDirectory 函数检索此目录的路径。
  4. Windows 目录。 GetWindowsDirectory 函数检索此目录的路径。
  5. PATH 环境变量中列出的目录。

关于c++ - 如何将绝对路径转为相对路径,使dll可以在多台计算机上找到它的依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23881628/

相关文章:

c++ - 使用 CreateFile 打开网络文件失败并显示 FILE_NOT_FOUND

c++ - 如何像内置类型一样提升两个模板类型进行算术运算呢?

c++ - 如何在DLL和exe中使用Glad

c++ - 需要帮助创建 Windows dll

delphi - 从 Delphi 程序调用 C DLL

c++ - glColor4f 设置颜色失败?

c++ - 在任意原点调整矩形形状

Visual Studio 2010 中的 C++ 隐式类型转换

c# - 为什么这个字符在 Visual Studio 中不可见?

visual-studio - 在 Docker 容器中运行时的 .NET Core 分析