Importation et exportation de fonctions inline
Les fonctions importées peuvent être définies comme inline. L’effet est à peu près identique à la définition d’une fonction standard inline ; les appels à la fonction sont développés en code inline, comme une macro. Cela est principalement utile pour prendre en charge les classes C++ dans une DLL qui peut inliner certaines de leurs fonctions membres pour une efficacité.
L’une des fonctionnalités d’une fonction inline importée est que vous pouvez prendre son adresse en C++. Le compilateur retourne l’adresse de la copie de la fonction inline résidant dans la DLL. Une autre fonctionnalité des fonctions inline importées est que vous pouvez initialiser des données locales statiques de la fonction importée, contrairement aux données importées globales.
Attention
Vous devez veiller à fournir des fonctions inline importées, car elles peuvent créer la possibilité de conflits de version. Une fonction inline est développée dans le code de l’application ; par conséquent, si vous réécritez ultérieurement la fonction, elle n’est pas mise à jour, sauf si l’application elle-même est recompilée. (Normalement, les fonctions DLL peuvent être mises à jour sans regénérer les applications qui les utilisent.)
Que voulez-vous faire ?
Exporter à partir d’une DLL à l’aide de __declspec(dllexport)
Exporter des fonctions C++ à utiliser dans des exécutables en langage C
Importer dans une application à l'aide de __declspec(dllimport)