dllexport, dllimport
Specyficzne dla firmy Microsoft
Atrybuty klasy magazynowania dllexport i dllimport są rozszerzeniami specyficznymi dla firmy Microsoft do języków C i C++.Można ich użyć do eksportowania i importowania funkcji, danych i obiektów z albo do biblioteki DLL.
__declspec( dllimport ) declarator
__declspec( dllexport ) declarator
Uwagi
Atrybuty te jawnie definiują interfejs DLL dla jego klienta, który może być plikiem wykonawczym lub innym DLL.Deklarowanie funkcji jako dllexport eliminuje potrzebę stosowania pliku definicji modułów (o rozszerzeniu def), co najmniej w odniesieniu do specyfikacji eksportowanych funkcji.Atrybut dllexport zastępuje słowo kluczowe __export.
Jeśli klasa jest oznaczona declspec(dllexport), wszystkie specjalizacje szablonów klas w hierarchii klas są niejawnie oznaczone jako declspec(dllexport).Oznacza to, że szablony klas są jawnie tworzone i elementy członkowskie klas muszą być zdefiniowane.
dllexport Funkcja udostępnia funkcję z nazwy dekoracyjnej.W przypadku funkcji C++ obejmuje to dekorowanie nazw.W przypadku funkcji C lub funkcji zadeklarowanych jako zewnętrzne "C" obejmuje to dekorację specyficzną dla platformy, opartą na konwencji wywołania.Jeśli nie chcesz uzupełnienia nazwy, użyj słowa kluczowego pliku .def (EKSPORT).
Kiedy deklarujesz dllexport lub dllimport, musisz użyć rozszerzonej składni atrybutu i __declspec słowa kluczowego.
Przykład
// Example of the dllimport and dllexport class attributes
__declspec( dllimport ) int i;
__declspec( dllexport ) void func();
Alternatywnie, aby kod był bardziej czytelny, można użyć definicje makr:
#define DllImport __declspec( dllimport )
#define DllExport __declspec( dllexport )
DllExport void func();
DllExport int i = 10;
DllImport int j;
DllExport int n;
Aby uzyskać więcej informacji, zobacz:
KONIEC informacji specyficznych dla firmy Microsoft