VÝVOZ
Zavádí části jednoho nebo více definitions exportovaných funkcí nebo data.Každá definice musí být na samostatném řádku.
EXPORTS
definitions
Poznámky
Vývoz klíčové slovo může být na stejném řádku jako první definice nebo předchozího řádku.DEF. soubor může obsahovat jeden nebo více vývoz příkazy.
Syntaxe pro export definitions je:
entryname[=internalname] [@ordinal [NONAME]] [PRIVATE] [DATA]
název_položky je název funkce nebo proměnné, kterou chcete exportovat.Je povinné.Pokud název exportu se liší od názvu v knihovně DLL, určete název export v knihovně DLL s internalname.Pokud knihovny DLL exportuje funkce, například func1() a chcete jej použít jako func2(), zadáte:
EXPORTS
func2=func1
@ordinal vám umožní určit, že číslo a není název funkce, přejde do na knihovnu DLL exportovat tabulku.Můžete minimalizovat velikost knihovny DLL.Na.LIB soubor bude obsahovat mapování mezi řadovou číslovku a funkci, která umožňuje používat název funkce, jako obvykle v projektech, které používají knihovny DLL.
Nepovinný PROFIL\0 klíčového slova umožňuje exportovat pouze řadové a zmenšit velikost tabulky exportu výsledné knihovny DLL.Ale pokud chcete použít GetProcAddress na knihovnu DLL, musíte znát pořadové, protože nebude platný název.
Volitelné klíčové slovo soukromé zabraňuje Název_položky z byly umístěny v knihovně importu generované propojení.Nemá vliv na export v obrazu také generovány propojení.
Volitelné klíčové slovo DATA Určuje, že vývozní data a ne kód.Například nelze exportovat proměnná data takto:
EXPORTS
i DATA
Při použití soukromé a DATA pro stejný vývoz soukromé musí předcházet DATA.
Existují tři metody pro export definici uvedené v doporučené pořadí použití:
__Declspec(dllexport) klíčové slovo ve zdrojovém kódu
Vývoz příkaz v souboru DEF.
/EXPORT specifikace v příkazu propojení
Všechny tři metody lze použít ve stejném programu.Při propojení vytvoří program, který obsahuje vývozů, vytvoří také importovat knihovny, pokud v sestavení není použit soubor .exp.
Oddíl vývozy příkladu je následující:
EXPORTS
DllCanUnloadNow @1 PRIVATE DATA
DllWindowName = Name DATA
DllGetClassObject @4 NONAME PRIVATE
DllRegisterServer @7
DllUnregisterServer
Při exportu proměnné z knihovny DLL s DEF. souboru bude není nutné zadat __declspec(dllexport) na proměnné.Však v souboru, který používá knihovnu DLL, musíte stále použít __declspec(dllimport) na prohlášení data.