Sdílet prostřednictvím


dllexport, dllimport

Specifické pro Microsoft

Atributy dllexport třídy úložiště jsou rozšíření jazyka C a dllimport C++ specifická pro Microsoft. Můžete je použít k exportu a importu funkcí, dat a objektů do nebo z knihovny DLL.

Syntaxe

__declspec( dllimport ) declarator
__declspec( dllexport ) declarator

Poznámky

Tyto atributy explicitně definují rozhraní knihovny DLL pro svého klienta, což může být spustitelný soubor nebo jiná knihovna DLL. Deklarování funkcí tak, jak dllexport eliminuje potřebu souboru definice modulu (.def) alespoň s ohledem na specifikaci exportovaných funkcí. Atribut dllexport nahradí __export klíčové slovo.

Pokud je třída označena __declspec(dllexport), všechny specializace šablon tříd v hierarchii třídy jsou implicitně označeny jako __declspec(dllexport). To znamená, že šablony tříd jsou explicitně vytvořena a členy třídy musí být definovány.

dllexport funkce zveřejňuje funkci s jeho zdobeným názvem, někdy označovaným jako "mangling". U funkcí jazyka C++ obsahuje zdobený název další znaky, které kódují informace o typu a parametru. Funkce jazyka C nebo funkce, které jsou deklarovány podle extern "C" pravidel dekorací názvů C. Další informace o dekoraci názvů v kódu C/C++ naleznete v tématu Dekorované názvy.

Pokud chcete exportovat nepojištěný název, můžete ho propojit pomocí souboru definice modulu (.def), který definuje nedekódovaný název v oddílu EXPORTS . Další informace najdete na webu EXPORTS. Dalším způsobem, jak exportovat nekódovaný název, je použití #pragma comment(linker, "/export:alias=decorated_name") direktivy ve zdrojovém kódu.

Když deklarujete dllexport nebo dllimport, musíte použít rozšířenou syntaxi atributu __declspec a klíčové 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ější, 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