Delen via


Expliciete PInvoke gebruiken in C++ (DllImport-kenmerk)

Het .NET Framework biedt expliciete Platform Invoke-functies (of PInvoke) met het Dllimport kenmerk waarmee beheerde toepassingen onbeheerde functies kunnen aanroepen die zijn verpakt in DLL's. Expliciete PInvoke is vereist voor situaties waarin niet-beheerde API's worden verpakt als DLL's en de broncode niet beschikbaar is. Voor het aanroepen van Win32-functies is bijvoorbeeld PInvoke vereist. Gebruik anders impliciete P{Invoke; zie C++ Interop (impliciete PInvoke) gebruiken voor meer informatie.

PInvoke werkt met behulp van DllImportAttribute. Dit kenmerk, dat de naam van het DLL-bestand als eerste argument gebruikt, wordt geplaatst vóór een functiedeclaratie voor elk DLL-toegangspunt dat wordt gebruikt. De handtekening van de functie moet overeenkomen met de naam van een functie die wordt geëxporteerd door het DLL-bestand (maar sommige typeconversies kunnen impliciet worden uitgevoerd door de DllImport declaraties te definiëren in termen van beheerde typen.)

Het resultaat is een beheerd toegangspunt voor elke systeemeigen DLL-functie die de benodigde overgangscode (of thunk) en eenvoudige gegevensconversies bevat. Beheerde functies kunnen vervolgens via deze toegangspunten in het DLL-bestand worden aangeroepen. De code die in een module is ingevoegd als gevolg van PInvoke, wordt volledig beheerd.

In deze sectie

Zie ook

Systeemeigen functies aanroepen vanuit beheerde code