JNI problem when calling a native library that loads another native library?

There are really only two ways that one DLL can load another one in Windows - either they do it explicitly using LoadLibrary() or it's implicitly by linking the first DLL against the import library of the second one. You should be able to use Dependency Walker to find out if DLL_B is a dependency of DLL_A or not. Running depwalker will also show you if DLL_B is on the path if it's implicitly linked or not.

There are really only two ways that one DLL can load another one in Windows - either they do it explicitly using LoadLibrary() or it's implicitly by linking the first DLL against the import library of the second one. You should be able to use Dependency Walker to find out if DLL_B is a dependency of DLL_A or not. Running depwalker will also show you if DLL_B is on the path if it's implicitly linked or not.

I'd also run depwalker on DLL_B to ensure that there are no surprising dependencies for DLL_B - the problem you're seeing might well be caused by DLL_B not being able to load one of its dependencies, not by DLL_A failing to find DLL_B. IIRC Windows will scan the PATH for implicitly linked libraries, so check if your invocation of your java process plays with the path. The documentation for LoadLibrary explains how LoadLibrary scans for a DLL.

You said you managed to load DLL_B from Java directly; When you do that and then call through DLL_A, does the callback mechanism start to work? This might be a somewhat ugly workaround for the time being.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions