如何建立相对路径的绝对路径,以便dll可以在多台计算机中找到它的依赖关系?

时间:2014-05-27 05:28:59

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

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

  1. 右键单击项目--->属性--->配置属性---> C / C ++ --->通用--->其他包含目录(它是目录头文件的dll B(绝对路径))
  2. 右键单击项目--->属性--->配置属性--->链接器--->通用--->附加库目录(它是lib的目录与dll B连接(绝对路径))
  3. 右键单击项目--->属性--->配置属性--->链接器--->输入--->附加依赖项(它是提到的lib的名称以上)
  4. dll B由第三方提供。我知道我实际上称之为dll B,我可以通过lib找到dll B(我是对的吗?)。 我在jni的Java App中使用dll A.它在我的计算机上正常工作,但我要求让Java App在另一台计算机上运行。我该怎么做才能使它工作?我可以改变相对路径的绝对路径以及如何?

1 个答案:

答案 0 :(得分:2)

你可以将B.dll和A.dll放在同一个文件夹中,这样A.dll可以在你加载它时找到B.dll。

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

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