-
Comment lier exe a dll
Bonjour,
apparemment lorsque l'on développe une dll, celle-ci est liée dynamiquement au programme grâce à un appel a LoadLibrary.
J'essaye de m'inspirer du programme Taski sur Souceforge qui permet la capture de scene opengl en injectant une dll dans les jeux Opengl et en récupérant un buffer de l'image avant de renvoyer celui-ci au programme laucher (injecteur de la dll) pour sauvegarder le buffer sous forme d'image...
Le probleme c'est que je ne vois pas comment le launcher et la dll sont liés=> il n'y a pas d'appel à LoadLibrary ?
Dans la ligne de commande du linker je vois que l'exe est linké à la lib de la dll, mais je vois pas où cela est paramétré ?
Auriez-vous une idée ?
Merci pour toute aide.
-
Bonjour,
personne n'aurait une idée? En fait pour faire plus simple pourriez-vous seulement télécharger la solution (VC++ su VS 2003) qui comprend 2 projets :
un pour un exe et l'autre pour une DLL :
- j'aimerais seulement savoir comment les deux sont liés car je ne vois pas d'appel à LoadLibrary correspondant à la DLL ...
Merci d'avance à celui qui aura le courage de jeter un petit coup d'oeil,
Lek .
-
Bonjour,
Merci à ceux qui ont lus mon post mais c'est bon je crois que j'ai trouvé!
Pour qui aurait la même question : il suffit d'utiliser la DLL depuis l'exe en incluant les headers adéquats et de marquer la DLL comme dépendance du projet exe.
Lek.
-
En fait, si ton Exe utilise les headers de la Dll, il utilise la lib créée lors de la génération de la Dll pour avoir le code qu'il lui manque au niveau des fonctions spécifiques de la Dll. Il lui faut alors avoir la Dll à côté pour pouvoir récupérer les fonctions lors de l'exécution (mets la Dll dans un autre dossier que l'exe et celui-ci ne se lancera plus, à moins que le dossier contenant la Dll soit dans le PATH).
Pour avoir besoin d'un LoadLibrary, il faut en fait ne pas inclure les headers dans le code de ton Exe, pré-déclarer les prototypes de tes fonctions de la même manière que dans la Dll puis tu charges la Dll via LoadLibrary, et tu charges les symboles correspondant aux fonctions via GetProcAddress.