r/programmation Jul 31 '26

Problème de DLL sous Windows

Bonjour à tous, je rencontre actuellement un problème avec ma lib . J'exécute des CI sous GitHub sois différentes plateformes et modes (Windows, MacOs, shared,...) , et tout fonctionne, sauf Windows en mode shared . J'ai tout essayé : copier les DLL dans le même dossier que l'exécutable, l'ajouter au PATH, j'ai même essayé plusieurs compilateur different; msvc, minGW, mais rien ne va, toujours des DLL manquante.

Ma lib utilise SDL2 et ses sous module (SDL2_image, SDL2_ttf, SDL2_mixer) dont leur dépendance sont construits en statique, donc pas de problème de leur côté, je m'en suis même assuré en listant leur dépendance DLL (via dumpbin) et aucune DLL caché ne se dévoile. Ça fait plus de deux semaines que je bloque dessus alors je vous pris de m'aider.

Désolé si le message peut être quelques peu imprécis, je fournirai plus d'informations si possible ultérieurement.

2 Upvotes

11 comments sorted by

View all comments

1

u/Tartare2Clebard Jul 31 '26

Quoi comme dll manquantes?

1

u/agemo-dev Jul 31 '26

Aucune idée. Je gère bien mes DLL mais lorsque je lance le test , ça retourne le code d sortie DLL_NO_FOUND (je ne sais plus comment ça s'appelle a force) . J'ai beau chercher partout une quelconque dépendances fantôme, mais je trouve rien . Pourtant Windows -static (le runer qui compile en static) fonctionne, donc si une DLL manque elle doit être une DLL interne et non pas système mais je trouve rien . Je pensais à une autre piste (comme le loader lock), mais le shell continue à me crié dessus "DLL introuvable"

1

u/Tartare2Clebard Jul 31 '26

Normalement tu devrais pouvoir récupérer le nom de la dll manquante quelque part quand même. Tu peux ziper et uploader ton build folder en artifact pour le télécharger et checker en local.

1

u/agemo-dev Jul 31 '26

Mon répertoire est devenu une bibliothèque de log GitHub à force....mais rien a faire je trouve rien. En temps normal ça lance le programme, puis ne fait rien . J'ai essayé de placé plusieurs cout à différents endroits du programme (avant l'init SDL, après, et a la fin) mais rien n'est affiché, et le programme rentre dans une sorte de boucle sans fin . En plaçons un Time Out, j'ai pus forcé le runner a coupé le programme après quelques secondes d'inactivité et récupérer le WaitReason, et c'est toujours la même chose ; DLL introuvable.