Not
Å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.
.NET Framework tillhandahåller explicita funktioner för plattformsanrop (eller PInvoke) med Dllimport attributet så att hanterade program kan anropa ohanterade funktioner som paketeras i DLL:er. Explicit PInvoke krävs för situationer där ohanterade API:er paketeras som DLL:er och källkoden inte är tillgänglig. Att anropa Win32-funktioner kräver till exempel PInvoke. Annars använder du implicit P{Invoke; se Använda C++ Interop (Implicit PInvoke) för mer information.
PInvoke fungerar med hjälp av DllImportAttribute. Det här attributet, som tar DLL-namnet som sitt första argument, placeras före en funktionsdeklaration för varje DLL-startpunkt som ska användas. Funktionens signatur måste matcha namnet på en funktion som exporteras av DLL:en (men någon typkonvertering kan utföras implicit genom att DllImport definiera deklarationerna i termer av hanterade typer.)
Resultatet är en hanterad startpunkt för varje intern DLL-funktion som innehåller nödvändig övergångskod (eller thunk) och enkla datakonverteringar. Hanterade funktioner kan sedan anropa dll-filen via dessa startpunkter. Koden som infogas i en modul till följd av PInvoke hanteras helt.
I det här avsnittet
Anvisningar: Anropa interna DLL:er från hanterad kod med hjälp av PInvoke
Så här gör du: Marshal Embedded Pointers using PInvoke (Konvertera inbäddade pekare med PInvoke)