Merci bacelar, je suis bien allé voir la page que tu indiques.
Mais dans mon cas, ce n'est pas applicable :
Applications can control the location from which a DLL is loaded by specifying a full path or using another mechanism such as a manifest.
If SafeDllSearchMode is enabled, the search order is as follows:
1-The directory from which the application loaded.
2. The system directory. Use the GetSystemDirectory function to get the path of this directory.
3. The 16-bit system directory. There is no function that obtains the path of this directory, but it is searched.
4. The Windows directory. Use the GetWindowsDirectory function to get the path of this directory.
5. The current directory.
6. The directories that are listed in the PATH environment variable.
Mon appli n'utilise pas de manifest, et je ne peux pas modifier le code à l'endroit où la dll est chargée (je ne peux pas changer la string qui contient le chemin vers la dll).
Quant aux autres solutions :
1 : Comme jvm.dll charge elle-même toute un collection d'autres dll, cela supposerait de copier toute l'arborescence des libraires java dans le répertoire de l'appli... possible, mais très coûteux.
2 : comme 1, mais avec en plus, des droits d'administrateur pour mon appli.
3 : java n'est définitivement pas 16 bits.
4 : comme 2.
5 : comme 1.
6 : c'est ma seule solution !
Pour info, j'avais le même problème avec pthread.dll et libcurl.dll, et je l'ai résolu avec la solution 1, car ces 2 dll sont autosuffisantes.
Partager