Bonjour a tous,
Dans le cadre d'un frontend retro, je dois charger et décharger des lib dynamiques pour changer d'émulateur.
Tout fonctionne très bien hormis un irréductible MAME (émulateur arcade) qui pour une raison qui m'échappe refuse de se décharger.
Pour éviter de mettre en cause mon code j'ai reproduit un exemple minimal, a savoir, charger, décharger, attendre 30sec(le temps de vérif. dans process explorer) et vous vous en doutez, il est toujours la, tapis dans l'obscurité.
Le code de test:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 //Code java qui appelle ma lib, dans laquelle se trouve le code plus bas System.load("D:\\dev\\prj\\retro-player-emulator-libretro\\bin/libpxl.dll"); LibRetro l = new LibRetro(Path.of("D:\\dev\\prj\\retro-player/data/local/emulators/libretro")); l.loadCore(LibRetroCore.MAME); Thread.sleep(30000);Si quelqu'un a une idée de pourquoi cette lib(libretro_mame.dll) est capricieuse alors que les autres, aucun soucis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 PXLEXPORT void loadCore(const char* libPath) { auto hndl = LoadLibraryA(libPath); auto r = FreeLibrary(hndl); if(r) { pxlLogInfo("UNLOAD LIB"); } }
Partager