Maison > développement back-end > C++ > Comment puis-je exporter tous les symboles d'une DLL dans Visual Studio sans utiliser de macros ou de fichiers .def ?

Comment puis-je exporter tous les symboles d'une DLL dans Visual Studio sans utiliser de macros ou de fichiers .def ?

Patricia Arquette
Libérer: 2024-11-25 22:48:10
original
929 Les gens l'ont consulté

How Can I Export All Symbols from a DLL in Visual Studio Without Using Macros or .def Files?

Exporter automatiquement tous les symboles d'une DLL sans macros ni fichiers .def

Dans Visual Studio 2005, vous pouvez exporter tous les symboles d'une DLL sans ajouter manuellement __declspec(dllexport) ni créer de fichiers .def. Ceci est réalisé à travers les étapes suivantes :

Utilisation de CMake (recommandé)

  • Installez CMake version 3.3.20150721-g9cd2f ou supérieure, qui inclut l'option "Exporter Fonctionnalité "Tous".
  • Ajouter la ligne set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) sur votre fichier CMakeLists.txt.
  • Créez un projet Visual Studio à l'aide de CMake.
  • Compilez le projet et tous les symboles seront exportés automatiquement.

Remarque : Lorsque vous utilisez cette méthode, assurez-vous que /GL (Whole Optimisation du programme) n'est pas activé.

Analyse des fichiers .obj

  • Créez un programme pour analyser les fichiers .obj et extraire les symboles exportés.
  • Rassemblez des informations telles que les conventions d'appel, les champs de symboles et les informations externes/statiques. informations.
  • Générez un fichier .def avec les symboles extraits.
  • Liez la DLL à l'aide du fichier .def.

Bien que cette méthode nécessite un effort supplémentaire, elle offre une flexibilité dans l'analyse des fichiers .obj.

Supplémentaire Conseils

  • Utilisez les macros d'exportation __declspec(dllexport) ou __cdecl pour les fonctions C afin d'éliminer la modification des noms.
  • Utilisez une bibliothèque statique pour exporter des symboles, puis analysez-les et extrayez-les pour utiliser dans un fichier .def.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal