Obsah:
Definice - Co znamená atribut DllImport?
Atribut DllImport je deklarativní značka používaná v C # k označení metody třídy, která je definována v externí dynamické knihovně (DLL), nikoli v jakékoli sestavě .NET.
Atribut DllImport se používá v době spuštění k volání funkce exportované v externí DLL implementované s nespravovaným kódem, která je vykonávána mimo kontrolu nad běžným jazykem runtime (CLR). Používá se také ke specifikaci dalších informací potřebných při volání funkce, jako je konvence volání, typ převodu parametrů předávaných mezi spravovaným a nespravovaným kódem atd. Používá se proto k interoperabilitě s kódem v nespravovaných a starších komponentách, které jsou umístěny ve Windows. DLL a je psán v C nebo C ++.
DllImport je užitečný v situacích, kdy funkčnost spravované aplikace, jejíž kód je spuštěn CLR, lze rozšířit pouze přístupem a opětovným použitím funkčnosti programovacího rozhraní aplikace Win32 (API) a dalších uživatelem definovaných nespravovaných kódů, které jsou implementovány. v DLL. To může ušetřit vývojové úsilí a využít existující robustní a osvědčený kód, aniž by došlo ke znovuobjevení kola ve spravované aplikaci. Obvykle je to nutné při používání DLL, které nelze přepsat, ale mají možnost úpravy.
Techopedia vysvětluje atribut DllImport
Atribut DllImport je deklarační prohlášení pro exportovanou funkci, která má být vyvolána ze spravované aplikace. Nelze použít pro funkci člena, která vyžaduje instanci třídy. Je specifikována v době návrhu v hranatých závorkách před deklarací metody, pro kterou je použita. Před deklarací funkce je nutné použít řetězec „extern“.
Například atribut DllImport lze použít v aplikaci Windows Forms, což je spravovaná aplikace k vyvolání metody komponenty modelu objektu komponenty (jejíž kód je nespravován) pro provádění některých výpočtů.
Je určen k importu tradičních dll, které exportují své funkce pomocí původního exportního mechanismu Windows DLL. Není určen pro použití kódu ve spravované sestavě (jako DLL), na kterou lze přímo odkazovat v projektu spravované aplikace.
Atribut DllImport používá InteropServices CLR, které provádí volání ze spravovaného kódu do nespravovaného kódu. Informuje také kompilátor o umístění implementace použité funkce. Při volání funkce nespravovaného obálky s tímto atributem ve spravovaném kódu CLR vyhledá a načte potřebnou DLL. Je zařazen (převádí parametry podle specifikace) a po provedení vrací nespravovaný kód spolu se správnou konverzí parametrů.
Při použití atributu DllImport je třeba věnovat pozornost správnému názvu DLL a exportované funkce, protože překlepy se mohou objevit na místech, kde je nelze snadno zjistit.