Dela via


Skapa en klass för att lagra DLL-funktioner

Att omsluta en DLL-funktion som används ofta i en hanterad klass är en effektiv metod för att kapsla in plattformsfunktioner. Även om det inte är obligatoriskt att göra det i alla fall är det praktiskt att tillhandahålla en klassomslutning eftersom det kan vara besvärligt och felbenäget att definiera DLL-funktioner. Om du programmerar i Visual Basic eller C#, måste du deklarera DLL-funktioner i en klass eller Visual Basic-modul.

I en klass definierar du en statisk metod för varje DLL-funktion som du vill anropa. Definitionen kan innehålla ytterligare information, till exempel teckenuppsättningen eller anropskonventionen som används för att skicka metodargument. genom att utelämna den här informationen väljer du standardinställningarna. En fullständig lista över deklarationsalternativ och deras standardinställningar finns i Skapa prototyper i hanterad kod.

När du är omsluten kan du anropa metoderna i klassen när du anropar statiska metoder för alla andra klasser. Platform invoke hanterar den underliggande exporterade funktionen automatiskt.

När du utformar en hanterad klass för plattformsanrop bör du överväga relationerna mellan klasser och DLL-funktioner. Du kan till exempel:

  • Deklarera DLL-funktioner i en befintlig klass.

  • Skapa en enskild klass för varje DLL-funktion och håll funktionerna isolerade och enkla att hitta.

  • Skapa en klass för en uppsättning relaterade DLL-funktioner för att bilda logiska grupper och minska kostnaderna.

Du kan namnge klassen och dess metoder som du vill. Exempel som visar hur du konstruerar . NET-baserade deklarationer som ska användas med plattformsanrop finns i Marshalling Data with Platform Invoke (Marshalling Data with Platform Invoke).

Se även