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

Viz také

__declspec
Klíčová slova