Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将绝对路径设置为相对路径,以便dll可以在多台计算机中找到其依赖项?_C++_Visual Studio_Dll_Java Native Interface - Fatal编程技术网

C++ 如何将绝对路径设置为相对路径,以便dll可以在多台计算机中找到其依赖项?

C++ 如何将绝对路径设置为相对路径,以便dll可以在多台计算机中找到其依赖项?,c++,visual-studio,dll,java-native-interface,C++,Visual Studio,Dll,Java Native Interface,我已经构建了一个dll(我们可以将其命名为dll a),它使用第三方dll(dll B)。我对dll a的配置如下(IDE是VS 2008): 右键单击项目-->属性-->配置属性-->C/C++-->常规-->附加包含目录(它是dll B的头文件目录(绝对路径) 右键单击项目-->属性-->配置属性-->链接器-->常规-->附加库目录(它是连接dll B(绝对路径)的库目录) 右键单击项目-->properties-->configurationproperties-->Linker-->I

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

  • 右键单击项目-->属性-->配置属性-->C/C++-->常规-->附加包含目录(它是dll B的头文件目录(绝对路径
  • 右键单击项目-->属性-->配置属性-->链接器-->常规-->附加库目录(它是连接dll B(绝对路径)的库目录)
  • 右键单击项目-->properties-->configurationproperties-->Linker-->Input-->AdditionalDependencies(这是上面提到的lib的名称)
  • dll B是由第三方提供的。我知道我实际调用的是dll B,我可以通过库找到dll B(我说得对吗?)。
    我在jni的Java应用程序中使用dll A。它在我的计算机中正常工作,但我需要使Java应用程序在另一台计算机上运行。我应该如何使其工作?我可以将绝对路径更改为相对路径,以及如何更改?

    您可以将B.dll和A.dll放在同一文件夹中,以便A.dll在应用程序加载时可以找到B.dll

    下面是windows上查找DLL的搜索路径

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

  • 您可以将B.dll和A.dll放在同一个文件夹中。@Jerry.YY.谢谢,它可以工作。