Question

Dans mon entreprise, nous utilisons les fichiers .def pour spécifier les symboles qui doivent être exportés. (Je voudrais pouvoir utiliser une technique plus moderne et automatisée, malheureusement, les gars qui décident vivent de retour dans les années quatre-vingt).

L'écriture d'un fichier .def à la main, à l'aide de copier-coller manuel est ennuyeux et, mais jusqu'à présent, je peux sujette aux erreurs vivre avec.

Cependant, je dois écrire un fichier .def similaire pour la version 64 bits de la DLL. La décoration de nom de plusieurs fonctions a changé et je me demande s'il y a un moyen de générer un fichier .def pour la version 64 bits de la version 32 bits.

Connaissez-vous un outil qui pourrait me aider? Est-ce encore réaliste? Je ne me sens vraiment pas comme je veux le faire à la main une fois de plus. Toute solution, même celle qui consiste à coder mon propre outil, est la bienvenue.

Merci.

Était-ce utile?

La solution

Je serais probablement __declspec (dllexport) les symboles que je voulais, compiler, puis exécutez dumpbin / exports sur la DLL résultant pour obtenir les noms déchiquetés, et vous pouvez retirer le __declspec et faire un fichier def.

Autres conseils

Dites à votre patron pour revenir aux années 80. Sérieusement, ce n'est pas un moyen portable pour exporter les noms de symboles. Que faire si le compilateur C de modifier le nom système mutiler? Ensuite, vous auriez à faire (ce jcopenha dit) tout recommencer. Que faire si vous ne travaillez pas là quand il arrive? Est-ce une autre pauvre âme va devoir passer un temps précieux pour savoir quoi et comment le faire? Je voudrais essayer de convaincre le patron d'utiliser __declspec(dllexport). Il va gagner du temps maintenant, et peut-être dans l'avenir.

Je suppose que vous exportez des classes et des fonctions surchargées. Si vous n'êtes pas, alors j'exporter les fonctions avec les noms C au lieu. Ces noms ne sont pas mutilée, et ne changera pas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top