Definieren von inline C++-Funktionen mit dllexport und dllimport

Microsoft-spezifisch

Sie können als Funktion mit dem dllexport-Attribut inline definieren.In diesem Fall wird die Funktion immer instanziiert und exportiert, ob ein beliebiges Modul im Programm die Funktion verweist.Die Funktion wird als durch ein anderes Programm importiert werden sollen.

Sie können auch als Funktion inline definieren, die mit dem dllimport-Attribut deklariert wird.In diesem Fall kann die Funktion erweitert werden (abhängig) - Spezifikationen von /Ob-, aber nie instanziiert werden.Insbesondere wenn die Adresse der importierten Funktion inline ausgeführt wird, wird die Adresse der Funktion in der DLL befindet, zurückgegeben.Dieses Verhalten stimmt mit der die Adresse einer nicht-Inline importierten Funktion nehmend.

Diese Regeln gelten für Inlinefunktionen an, deren Definitionen innerhalb einer Klassendefinition angezeigt werden.Außerdem hilft statische lokale Daten und Zeichenfolgen in Inlinefunktionen dieselben Identitäten zwischen der DLL und dem Client verwaltet, den sie in einem Programm wurde (d. h. eine ausführbare Datei ohne eine DLL-Schnittstelle).

Übungs sorgfalt, wenn importierte Inlinefunktionen bereitgestellt werden.Wenn Sie z. B. die DLL aktualisieren, nehmen Sie nicht davon aus, dass der Client die geänderte Version der DLL verwendet.Um sicherzustellen, dass Sie die richtige Version der DLL laden, neu erstellen Sie den Client auch der DLL.

Siehe auch

Referenz

dllexport, dllimport