Bonjour tous je souhaite créer un programme exécutable (.exe) de type (portable exécutable format https://en.wikipedia.org/wiki/Portable_Executable ) en VC++,
ce programme doit utiliser des dll Windows et autres(pour les autres je connais les headers mais la dll est différente selon la machine ce qui m’empêche de l’inclure dans le exe de plus l’exécutable ne serait plus portable/indépendant ), je ne peut pas non plus utiliser le linker de visual studio car l’exécutable créer deviendrai dépendant des chemins vers les dll paramétré dans visual studio.
Après des recherches sur internet de multiples problème se sont posés :
Comment «linker» les dll (windows et autres) de manière explicite afin que l’exécutable soit réellement portable (indépendant de la dll) ?
Une des piste est le linkage explicite via loadlibrary et getprocaddress mais si j’ai bien compris j’aurai besoin de kernell32.dll donc il faut d’abord que je charge cette dll (comment le faire de manière explicite si je n’ai pas la fonction loadlibrary) et de plus il faut définir des foncteurs sur chacune des fonction (prototype) de la dll utilisé ce qui me paraît un peu fastidieux mais clairement faisable.
Comment trouver le chemin des dll (variable d’environnement, fonction windows qui le permet, créer un fonction de recherche qui tente de charger ces dll à différent chemin probable ) ?
Quel sont les options/paramètres de compilation afin de créer un tel exécutable sous visual studio (PE)?
Merci d’avance pour vos réponse et bonne journée/soirée.
Ps:j’ai des base moyenne de programmation en c++, mais mes connaissance du fonctionnement de Windows, de ces librairies ce résume au néant.
Ps’:Je suis ouvert a toute réponse si vous avez des lien vers de la documentation ou des tutoriel se rapprochant de mon problème je serait déjà très content.
Partager