Au-delà de la création d'une DLL avec toutes les mêmes fonctions avec la même interface et les mêmes conventions d'appel, la DLL de remplacement doit-elle reproduire exactement la carte d'exportation, y compris les numéros ordinaux de l'original? Donc, non seulement le chargement explicite via GetProcAddress fonctionne, mais aussi les liens implicites?Comment créer un remplacement direct pour une DLL existante?
(edit: ceci est un non géré, c/C++ windows dll dont je parle, pas .net)
Merci! Je n'avais pas pensé aux cours. Je pense que mon cas particulier est juste "C" fonctions si juste en spécifiant ordinal dans le fichier .def devrait le faire. J'ai remarqué dans "dumpbin/exports" qu'il y a aussi une colonne "hint", est-ce que cela doit aussi être conservé, ou cela peut-il différer sans casser la compatibilité? – Bogatyr
Oh, encore une chose. Le "dumpbin/exports original.dll" contient plusieurs entrées pour le même entrypoint: "foo" et "foo @ 4", à différents nombres ordinaux, mais entrypoint identique. Comment créer ces alias "@n" supplémentaires dans la carte d'exportation? – Bogatyr
@Bogatyr est la taille des paramètres, foo signifie pas de paramètres foo @ 4 est foo (int), foo @ 8 signifie foo (int, int) –