Bonjour,
J'ai déjà eu plusieurs fois à faire face à cette fonction, qui s'utilise très simplement.
Seulement dans un souci de progression, j'aimerai avoir plus de détail sur le fonctionnement de cette fonction.
1 - Comment cette fonction s'y prend pour retrouver l'adresse d'une fonction ?
2 - En recherchant des infos sur la doc microsoft, j'ai lu que cette fonction était utilisé lors d'un lien explicite à une library. ( Ce qui paraît à première vu logique. ) Ce qui m'amène à me poser la question, comment fonctionne un lien implicite?
Alors techniquement on inclut le header qui contient les définitions, ainsi que la library dite statique, qui permet de faire les liens sur les fonctions. Mais concrètement... Les fonctions sont incluses directement au linkage de l'application? Ou alors les liens sont en dur ( autrement dis, l'adresse des fonctions est défini à la compilation, et l'application doit se débrouiller pour dire au loader de charger les library aux endroit prévu ) ?
3 - La réponse à cette question, découlera de la question 2. Comment notre programme connaît l'adresse de GetProcAddress? Pour qu'il en soit ainsi, je dirais que la library Kernel32.dll, doit toujours être chargé à la même adresse mémoire. Ou peut être existe-t-il une méthode que je ne soupçonne pas?
Merci beaucoup à qui pourra me faire ( ou tenter) de me faire progresser sur ce sujet!
Partager