Afficher : Delphi C++
Préférences d'affichage

Exportation et importation de templates

De RAD Studio XE2

Remonter à Spécificités du C++ - Index

La déclaration d'une fonction ou d'une classe template doit être suffisamment flexible pour être utilisée dans une DLL (bibliothèque liée dynamiquement et partagée) ou un fichier exécutable. La même déclaration de template doit être disponible en importation comme en exportation ou sans modificateur. Pour être complètement flexible, les déclarations de template du fichier en-tête ne doivent pas utiliser les modificateurs __export et __import. Cela permet d'appliquer le modificateur approprié au point d'instanciation selon la manière dont l'instanciation va être utilisée.

Les étapes suivantes illustrent la manière d'exporter et d'importer des templates. Le code source est organisé en trois fichiers. En utilisant le fichier en-tête, du code est généré dans la bibliothèque liée dynamiquement (DLL).

1. Déclarations de templates exportables/importables

Le fichier en-tête contient toutes les déclarations de classes et de fonctions template. Une version d'exportation/importation du template peut être instanciée en définissant la macro appropriée au moment de la compilation.

2. Compilation de templates exportables

Ecrivez le code source d'une bibliothèque liée dynamiquement. Une fois compilée, la bibliothèque a du code d'export réutilisable pour les templates.

3. Utilisation d'ImportTemplates

Il est maintenant possible d'écrire un appel de fonction utilisant des templates. Ce fichier exécutable est lié à la DLL. Seuls les objets non déclarés dans le fichier en-tête qui sont instanciés dans la fonction main provoquent la génération d'un code nouveau par le compilateur. Le code des objets nouvellement instanciés est écrit dans le fichier main.obj.

Versions précédentes
Autres langues