Obsah:
Definícia - Čo znamená atribút DllImport?
DllImport Attribute je deklaratívna značka používaná v C # na označenie metódy triedy ako je definovaná v externej knižnici dynamických odkazov (DLL) a nie v akýchkoľvek zostaveniach .NET.
Atribút DllImport sa používa v čase spustenia na volanie funkcie exportovanej do externej knižnice DLL implementovanej s nespravovaným kódom, ktorá sa vykonáva mimo kontroly nad bežným jazykom runtime (CLR). Používa sa tiež na špecifikovanie ďalších informácií potrebných pri volaní funkcie, ako je napríklad konvencia volaní, typ prevodu parametrov odovzdaných medzi spravovaným a nespravovaným kódom atď. Používa sa preto na spoluprácu s kódom v nespravovaných a starších komponentoch, ktoré sa nachádzajú v systéme Windows. DLL a je napísaný v C alebo C ++.
DllImport je užitočný v situáciách, keď funkčnosť spravovanej aplikácie, ktorej kód sa vykonáva pomocou CLR, je možné rozšíriť iba prístupom a opätovným použitím funkčnosti programovacieho rozhrania aplikácie Win32 (API) a iných užívateľom definovaných nespravovaných kódov, ktoré sú implementované. v knižnici DLL. To môže ušetriť vývojové úsilie a využiť existujúci robustný a osvedčený kód bez opätovného objavenia kolesa v riadenej aplikácii. Zvyčajne je to potrebné pri používaní knižníc DLL, ktoré nie je možné prepísať, ale majú možnosť úpravy.
Techopedia vysvetľuje atribút DllImport
Atribút DllImport je príkaz na vyhlásenie exportovanej funkcie, ktorá sa má volať zo spravovanej aplikácie. Nemôže sa použiť pre funkciu člena, ktorá vyžaduje inštanciu triedy. Je špecifikovaná v čase návrhu v hranatých zátvorkách pred vyhlásením o metóde, na ktorú sa uplatňuje. Pred deklaráciou funkcie je potrebné použiť reťazec „extern“.
Napríklad atribút DllImport sa môže použiť v aplikácii Windows Forms, ktorá je spravovanou aplikáciou na vyvolanie metódy komponentu komponentového modelu objektu (ktorého kód je nespravovaný) na vykonávanie niektorých výpočtov.
Je určený na importovanie tradičných knižníc DLL, ktoré exportujú svoje funkcie pomocou pôvodného mechanizmu exportu knižnice Windows DLL. Nie je určený na použitie kódu v riadenej zostave (ako DLL), na ktorú je možné priamo odkazovať v projekte spravovanej aplikácie.
Atribút DllImport používa InteropServices CLR, ktoré vykonáva volanie zo spravovaného kódu na nespravovaný kód. Informuje tiež kompilátora o mieste vykonávania použitej funkcie. Keď sa nazýva nespravovaná funkcia wrapperu s týmto atribútom v spravovanom kóde, CLR vyhľadá a načíta potrebnú DLL. Zaradí (prevedie parametre podľa špecifikácie) a po vykonaní vráti nespravovaný kód spolu so správnou konverziou parametrov.
Pri použití atribútu DllImport je potrebné venovať pozornosť používaniu správneho názvu DLL a exportovanej funkcie, pretože preklepy sa môžu vyskytnúť na miestach, kde ich nemožno ľahko zistiť.