Import a export
Veřejné symboly můžete importovat do aplikace nebo exportovat funkce z knihovny DLL pomocí dvou metod:
Použití souboru definice modulu (.def) při sestavování knihovny DLL
Použití klíčových slov
__declspec(dllimport)
nebo__declspec(dllexport)
v definici funkce v hlavní aplikaci
Použití souboru .def
Soubor definice modulu (.def) je textový soubor obsahující jeden nebo více příkazů modulu, které popisují různé atributy knihovny DLL. Pokud nepoužíváte __declspec(dllimport)
nebo __declspec(dllexport)
exportujete funkce knihovny DLL, knihovna DLL vyžaduje soubor .def.
Soubory .def můžete použít k importu do aplikace nebo k exportu z knihovny DLL.
Použití __declspec
Abyste mohli kód správně zkompilovat, nemusíte ho používat __declspec(dllimport)
, ale tím umožníte kompilátoru vygenerovat lepší kód. Kompilátor dokáže generovat lepší kód, protože může určit, zda funkce existuje v knihovně DLL, nebo ne, což kompilátoru umožňuje vytvořit kód, který přeskočí úroveň nepřímých volání, které by normálně existovalo ve volání funkce, které překročilo hranici knihovny DLL. Musíte však použít __declspec(dllimport)
k importu proměnných použitých v knihovně DLL.
Při správné části __declspec(dllexport)
EXPORT SOUBORU .def není nutné. __declspec(dllexport)
byl přidán, aby poskytoval snadný způsob, jak exportovat funkce ze souboru .exe nebo .dll bez použití souboru .def.
Formát Win32 Portable Spustitelný soubor je navržený tak, aby minimalizoval počet stránek, které musí být při opravě importů dotykové. Uděláte to tak, že umístí všechny adresy importu pro jakýkoli program na jednom místě označované jako Tabulka importu adres. Díky tomu může zavaděč upravovat při přístupu k těmto importům jenom jednu nebo dvě stránky.
Co chcete udělat?
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro