Y a-t-il un moyen de générer automatiquement le fichier DEF pour une DLL dans Visual Studio? Je les ai toujours faits manuellement manuellement auparavant, mais il faut que ça va être un moyen plus facile. P>
3 Réponses :
Mettez simplement: écrivez un script qui convient à vos besoins. I Pendant une création d'un petit script Perl sur certains pour créer un fichier La raison pour laquelle il n'y a pas d'outil de lecture à utiliser qui vous fait pour vous, car aucun des outils impliqués ne peut deviner ou de déterminer de manière télépathique déterminer quelles fonctions ou variables ou classes que vous souhaitez exporter et sous quels noms. < / p>
Comme vous le savez peut-être que les fichiers de définition de module vous permettent de modifier la manière dont un nom interne apparaît dans la table d'exportation, permet d'exporter par ordinal (au lieu de nom) ou par nom et ordinal. Bien sûr, ils permettent également d'exporter une fonction plusieurs fois (par exemple un ancien nom dû à des fins d'assistance héritée et d'un plus récent, car il suit une certaine convention). P>
Voir aussi Cette question . Vous remarquerez que la réponse implique également un script personnalisé. Dans ce cas, l'exigence est apparemment uniquement de démangeoir et d'exporter les noms de toutes les fonctions non statiques. P> .def code> de em> une DLL existante qui serait ensuite utilisée pour créer une bibliothèque d'importation (
.lib code>) de celui-ci. p>
J'ai trouvé un endroit pour générer le fichier .def pour vous ici: Expdef - def Générateur de fichiers p>
Ce fonctionnement incroyable et dispose d'une liste d'options que vous pourriez également générer en plus des noms de méthodes des fonctions et des symboles. p>
Voir la réponse avec le projet de démonstration ici: p>
https://stackoverflow.com/a/64302521/2338477 p>
J'ai inclus le script Python pour générer un fichier .def à partir de la bibliothèque statique, mais cela ne fonctionne malheureusement pas avec des variables / données. P>
Oui, c'est possible avec la nouvelle version de la cmake. Regardez ma réponse pour clarification: Stackoverflow.com/a/32284832/3001953