Publié : ven. 28/juil./2006 22:18
J'ai trouvé un élément de réponse sur le Net:Dr. Dri a écrit : Voila les questions que je me pose:
Dans certains fichiers je trouve des noms de fonctions un peu exotiques. Comment je dois l'interpréter ? Coment appeller ces fonctions ? Quelles sont les syntaxes autorisées pour les noms des fonctions ?
dans le fichier AegisE5.dll, les noms des fonctions sont sous la forme @fonction@8
je comprend bien le @8 (deux arguments) mais pourquoi le nom de la fonction commence par un @ ?
pire encore, dans le fichier narrhook.dll on peut voir des choses comme ?fonction@@YG ou ?fonction@@YGHZ@@GHIIT
peut être un bug de PB ? Il me semble que PB utilise des fonctions de kernel32.dll (LoadLibrary_, GetProcAddress_ etc importées statiquement) pour gérer les bibliothèques externes donc je doute un peu...
Dri
Chez certains compilateurs, dont Visual C++ 6 et MinGW, l'utilisation de __stdcall a pour effet de modifier les noms des fonctions exportées lors de la compilation (cette modification s'appelle une décoration). Par exemple, avec Visual C++ 6 notre fonction HelloWorld() sera exportée sous le nom " _HelloWorld@0 ". Mais vous pouvez tout de même spécifier le nom qu'aura votre fonction en l'indiquant dans un fichier .def.