Load shared library by path at runtime

后端 未结 4 1155
青春惊慌失措
青春惊慌失措 2020-12-05 05:04

I am building a Java application that uses a shared library written in C++ and compiled for different operating systems. The problem is, that this shared library itself depe

4条回答
  •  一整个雨季
    2020-12-05 05:38

    I do not think you can do it for it.

    Most Dlls have some sort of init() function that must be called after it have been loaded, and sometime that init() function needs some parameters and returns some handle to be used to call the dll's functions. Do you know the definition of the additional library?

    Then, the first library can not simply look if the DLL X is in RAM only by using its name. The one it needs can be in a different directory or a different build/version. The OS will recognize the library if the full path is the same than another one already loaded and it will share it instead of loading it a second time.

    The other library can load its plugins from another path because it written to not depend on PATH and they are his own plugins.

    Have you try to update the process's environment variables from the code before loading the Dll? That will not depends on a starter process.

提交回复
热议问题