Importation et exportation de fonctions inline
Mise à jour : novembre 2007
Les fonctions importées peuvent être définies comme étant inline. L'effet est à peu près le même que lors de la définition d'une fonction inline standard ; les appels à la fonction sont développés en code incorporé, à l'instar d'une macro. Cette approche est essentiellement utile en tant que méthode de prise en charge des classes C++ dans une DLL dont certaines fonctions membres peuvent être inline à des fins d'amélioration des performances.
Une fonction inline importée permet notamment de 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, contrairement aux données importées globales, vous pouvez initialiser les données locales statiques de la fonction importée.
Attention : |
---|
Soyez vigilant lorsque vous fournissez des fonctions inline importées, car elles peuvent donner lieu à des conflits de versions. Une fonction inline est développée en code d'application ; par conséquent, si vous réécrivez la fonction par la suite, celle-ci n'est mise à jour que si l'application elle-même est recompilée. (En principe, les fonctions de la DLL peuvent être mises à jour sans régénération des 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)