【问题标题】:How to make absolute path to relative path so that dll can find its dependency in more than one computer?如何创建相对路径的绝对路径,以便 dll 可以在多台计算机中找到它的依赖关系?
【发布时间】:2014-05-27 05:28:59
【问题描述】:

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

  1. 右键工程--->属性--->配置属性--->C/C++--->常规--->附加包含目录(就是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放在同一个文件夹中。
  • @Jerry.YY。谢谢,它有效。

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


【解决方案1】:

你可以把B.dll和A.dll放在同一个文件夹,这样A.dll可以在App加载的时候找到B.dll。

以下是在 Windows 上查找 DLL 的搜索路径。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    • 2019-04-10
    相关资源
    最近更新 更多