Maison  >  Article  >  développement back-end  >  Voici quelques options de titre, en tenant compte du format de la question et du contenu de l'article : **Court et direct :** * **Comment exporter et charger dynamiquement des classes C à partir d'une DLL ?** * **En retard-

Voici quelques options de titre, en tenant compte du format de la question et du contenu de l'article : **Court et direct :** * **Comment exporter et charger dynamiquement des classes C à partir d'une DLL ?** * **En retard-

Susan Sarandon
Susan Sarandonoriginal
2024-10-26 12:25:02617parcourir

Here are a few title options, taking into account the question format and the article's content:

**Short & Direct:**

* **How Do I Export and Dynamically Load C   Classes from a DLL?**
* **Late-Binding with C   Classes in DLLs: What Are the Options?**

Exportation d'une classe C à partir d'une DLL : considérations relatives à la liaison tardive

Lors de l'exportation de fonctions à partir d'une DLL, la directive __declspec(dllexport) est couramment utilisée. Mais comment exporter et charger dynamiquement des classes C entières ?

Late-Binding via LoadLibrary()

Le chargement direct d'une classe à l'aide de LoadLibrary() n'est généralement pas possible. Au lieu de cela, deux approches sont disponibles pour créer une liaison dynamique à une classe :

Approche 1 : fonction d'usine et assembleur

Créez une fonction d'usine pour instancier des objets et utilisez un assembleur pour les lier aux décalages de la DLL après chargement dynamique de la DLL. Cette approche est expliquée en détail ici : [Chargement dynamique d'objets C à partir de DLL](https://www.codeproject.com/Articles/18878/Dynamically-loading-objects-from-DLLs).

Approche 2 : Delay-Load DLL

Utiliser une DLL à chargement différé, qui permet le chargement dynamique d'une DLL et ses exportations au moment de l'exécution. Cependant, cette méthode peut ne pas être disponible sur toutes les plates-formes.

Liaison au moment de la compilation avec Header et Lib

Pour la liaison au moment de la compilation, vous pouvez soit :

  • Laissez l'éditeur de liens le gérer en incluant le symbole de classe exporté et en établissant un lien avec la bibliothèque d'importation appropriée.
  • Utilisez des macros de préprocesseur pour contrôler explicitement le comportement d'exportation. Ceci est couramment utilisé lors de la création de DLL avec des symboles exportés. Visual Studio génère automatiquement ces macros lors de la création de DLL avec l'option "exporter les symboles" activée.

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!

Déclaration:
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