Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan importera offentliga symboler till ett program eller exportera funktioner från en DLL med två metoder:
Använd en moduldefinitionsfil (.def) när du skapar DLL-filen
Använd nyckelorden
__declspec(dllimport)eller__declspec(dllexport)i en funktionsdefinition i huvudprogrammet
Använda en .def-fil
En moduldefinitionsfil (.def) är en textfil som innehåller en eller flera modulinstruktioner som beskriver olika attribut för en DLL. Om du inte använder __declspec(dllimport) eller __declspec(dllexport) exporterar en DLL-fils funktioner kräver DLL-filen en .def-fil.
Du kan använda .def-filer för att importera till ett program eller för att exportera från en DLL.
Använda __declspec
Du behöver inte använda __declspec(dllimport) koden för att kompilera korrekt, men det gör att kompilatorn kan generera bättre kod. Kompilatorn kan generera bättre kod eftersom den kan avgöra om en funktion finns i en DLL eller inte, vilket gör att kompilatorn kan producera kod som hoppar över en indirekt nivå som normalt skulle finnas i ett funktionsanrop som korsade en DLL-gräns. Du måste dock använda __declspec(dllimport) för att importera variabler som används i en DLL.
Med det korrekta EXPORTS-avsnittet i .def-filen, krävs __declspec(dllexport) inte.
__declspec(dllexport) lades till för att ge ett enkelt sätt att exportera funktioner från en .exe- eller .dll fil utan att använda en .def-fil.
Win32 Portable Executable format är utformat för att minimera antalet sidor som måste ändras för att åtgärda importer. För att göra detta placerar den alla importadresser för alla program på ett ställe som kallas importadresstabellen. Detta gör att inläsaren bara kan ändra en eller två sidor vid åtkomst till dessa importer.