Importieren und Exportieren von Inlinefunktionen
Aktualisiert: November 2007
Importierte Funktionen können als Inlinefunktionen definiert werden. Der Effekt ist ungefähr derselbe wie bei der Definition einer Standardfunktion als Inlinefunktion. Aufrufe der Funktion werden, ähnlich wie bei einem Makro, als Inlinecode erweitert. Diese Methode stellt eine hilfreiche Möglichkeit dar, C++-Klassen in einer DLL zu unterstützen, die einige ihrer Memberfunktionen zur Effizienzsteigerung inline umsetzen.
Ein Feature einer importierten Inlinefunktion besteht darin, dass ihre Adresse in C++ verwendet werden kann. Der Compiler gibt die Adresse der Kopie der Inlinefunktion zurück, die sich innerhalb der DLL befindet. Ein weiteres Feature importierter Inlinefunktionen besteht darin, dass Sie, anders als bei globalen importierten Daten, statische lokale Daten der importierten Funktion initialisieren können.
Vorsicht: |
---|
Beim Bereitstellen importierter Inlinefunktionen sollten Sie Sorgfalt walten lassen, da u. U. Versionskonflikte entstehen können. Eine Inlinefunktion wird als Anwendungscode erweitert. Wenn Sie die Funktion später neu schreiben, wird sie daher nur aktualisiert, wenn die Anwendung selbst neu kompiliert wird. (Normalerweise können DLL-Funktionen aktualisiert werden, ohne dass die Anwendungen, von denen sie verwendet werden, neu erstellt werden müssen.) |
Was möchten Sie tun?
Exportieren aus einer DLL mithilfe von __declspec(dllexport)
Exportieren von C++-Funktionen zur Verwendung in ausführbaren C-Dateien
Importieren in eine Anwendung mithilfe von __declspec(dllimport)