dllexport, dllimport
Specifické pro Microsoft
Atributy třídy úložiště a jsou rozšířeními jazyků C a C++ specifickými pro dllexportdllimport společnost Microsoft. Můžete je použít k exportu a importu funkcí, dat a objektů do nebo z knihovny DLL.
Syntax
__declspec( dllimport ) declarator
__declspec( dllexport ) declarator
Poznámky
Tyto atributy explicitně definují rozhraní knihovny DLL pro klienta, což může být spustitelný soubor nebo jiná knihovna DLL. Deklarování funkcí jako eliminuje potřebu souboru definice modulu (.def) alespoň s ohledem na specifikaci dllexport exportovaných funkcí. Atribut dllexport nahradí klíčové dllexport
Pokud je třída označena jako declspec(dllexport), všechny specializace šablon tříd v hierarchii tříd jsou implicitně označeny jako declspec(dllexport). To znamená, že šablony třídy jsou explicitně vytvořeny a členy třídy musí být definovány.
dllexport funkce zpřístupňuje funkci s dekorovaný názvem. U funkcí jazyka C++ to zahrnuje i smyšování názvů. Pro funkce jazyka C, které jsou deklarovány jako , to zahrnuje dekoraci specifickou pro platformu, která extern "C" je založená na konvenci volání. Informace o dekoraci názvů v kódu C/C++ najdete v tématu Dekorované názvy. Pro exportované funkce jazyka C nebo funkce jazyka C++ se pomocí konvence volání není použité žádné extern "C"__cdecl dekorování názvů.
Chcete-li exportovat necorated name, můžete odkazovat pomocí souboru definice modulu (.def), který definuje název bezecorated v oddílu EXPORTS. Další informace najdete v tématu EXPORTY. Dalším způsobem, jak exportovat nedefinovaný název, je použít #pragma comment(linker, "/export:alias=decorated_name") direktivu ve zdrojovém kódu.
Při dllexport deklaraci nebo dllimport musíte použít rozšířenou dllexport a klíčové __declspec slovo .
Příklad
// Example of the dllimport and dllexport class attributes
__declspec( dllimport ) int i;
__declspec( dllexport ) void func();
Pokud chcete, aby byl kód čitelný, můžete také použít definice maker:
#define DllImport __declspec( dllimport )
#define DllExport __declspec( dllexport )
DllExport void func();
DllExport int i = 10;
DllImport int j;
DllExport int n;
Další informace naleznete v tématu:
END Microsoft Specific