Inhoudsopgave:
Definitie - Wat betekent DllImport Attribute?
DllImport Attribute is een declaratieve tag die in C # wordt gebruikt om een klassemethode te markeren als gedefinieerd in een externe Dynamic-Link Library (DLL) in plaats van in een .NET-assembly.
Het kenmerk DllImport wordt tijdens runtime gebruikt om een functie aan te roepen die is geëxporteerd in een externe DLL die is geïmplementeerd met onbeheerde code die wordt uitgevoerd buiten de controle van Common Language Runtime (CLR). Het wordt ook gebruikt om andere informatie op te geven die nodig is tijdens het aanroepen van de functie, zoals aanroepconventie, type conversie van parameters die worden doorgegeven tussen beheerde en onbeheerde code, enz. Het wordt dus gebruikt om samen te werken met code in onbeheerde en oudere componenten die zich in Windows bevinden DLL's en is geschreven in C of C ++.
DllImport is nuttig in situaties waarin de functionaliteit van een beheerde applicatie, waarvan de code wordt uitgevoerd door CLR, alleen kan worden uitgebreid door toegang te krijgen tot de functionaliteit van de Win32 applicatie-programmeerinterface (API) en andere door de gebruiker gedefinieerde, onbeheerde codes die zijn geïmplementeerd in DLL. Dit kan ontwikkelingsinspanning besparen en gebruik maken van bestaande robuuste en goed geteste code zonder het wiel opnieuw uit te vinden in een beheerde applicatie. Het is meestal nodig tijdens het gebruik van DLL's die niet kunnen worden herschreven maar wel kunnen worden aangepast.
Techopedia legt DllImport Attribute uit
Het kenmerk DllImport is een verklaring voor de geëxporteerde functie die moet worden aangeroepen vanuit de beheerde toepassing. Het kan niet worden gebruikt voor een lidfunctie, waarvoor een instantie van klasse vereist is. Het wordt tijdens het ontwerp gespecificeerd tussen vierkante haakjes vóór de verklaring van de methode waarvoor het wordt toegepast. Het is noodzakelijk om de string "extern" te gebruiken vóór de functieverklaring.
Het kenmerk DllImport kan bijvoorbeeld worden gebruikt in de Windows Forms-toepassing, een beheerde toepassing om een methode van een componentobjectmodelcomponent (waarvan de code onbeheerd is) voor het uitvoeren van enkele berekeningen op te roepen.
Het is ontworpen om de traditionele DLL's te importeren die hun functies exporteren met behulp van het originele Windows DLL-exportmechanisme. Het is niet bedoeld voor het gebruik van code in beheerde assembly (als DLL), waarnaar direct in het project van de beheerde toepassing kan worden verwezen.
Het kenmerk DllImport gebruikt de InteropServices van de CLR, die de aanroep uitvoert van beheerde code naar onbeheerde code. Het informeert de compiler ook over de locatie van de implementatie van de gebruikte functie. Wanneer de onbeheerde wrapper-functie met dit kenmerk in beheerde code wordt aangeroepen, zoekt de CLR de benodigde DLL en laadt deze. Het marshals (converteert de parameters volgens de specificatie) en retourneert de onbeheerde code na uitvoering, samen met de juiste conversie van parameters.
Wanneer u het kenmerk DllImport gebruikt, moet u ervoor zorgen dat u de juiste naam van de DLL en de geëxporteerde functie gebruikt, omdat typefouten kunnen voorkomen op plaatsen waar ze niet gemakkelijk kunnen worden gedetecteerd.
