Spisu treści:
Definicja - Co oznacza atrybut DllImport?
Atrybut DllImport jest deklaratywnym znacznikiem używanym w języku C # do oznaczania metody klasy jako zdefiniowanej w zewnętrznej bibliotece dynamicznego łącza (DLL), a nie w dowolnym zestawie .NET.
Atrybut DllImport jest używany w czasie wykonywania do wywoływania funkcji eksportowanej do zewnętrznej biblioteki DLL zaimplementowanej z niezarządzanym kodem, który jest wykonywany poza kontrolą środowiska uruchomieniowego języka wspólnego (CLR). Służy również do określania innych informacji potrzebnych podczas wywoływania funkcji, takich jak konwencja wywoływania, typ konwersji parametrów przekazywanych między kodem zarządzanym i niezarządzanym itp. W ten sposób służy do współpracy z kodem w niezarządzanych i starszych komponentach znajdujących się w systemie Windows DLL i jest napisany w C lub C ++.
DllImport jest pomocny w sytuacjach, w których funkcjonalność aplikacji zarządzanej, której kod jest wykonywany przez CLR, można rozszerzyć tylko poprzez dostęp do funkcji interfejsu programowania aplikacji (API) i innych zaimplementowanych przez użytkownika, niezarządzanych kodów, i ponowne użycie w DLL. Pozwala to zaoszczędzić na pracach programistycznych i wykorzystać istniejący solidny i dobrze przetestowany kod bez ponownego opracowywania koła w zarządzanej aplikacji. Jest to zwykle potrzebne podczas korzystania z bibliotek DLL, których nie można przepisać, ale które można modyfikować.
Techopedia wyjaśnia atrybut DllImport
Atrybut DllImport jest instrukcją deklaracji dla eksportowanej funkcji, która ma zostać wywołana z aplikacji zarządzanej. Nie można go użyć do funkcji członka, która wymaga wystąpienia klasy. Jest on określony w czasie projektowania w nawiasach kwadratowych przed deklaracją metody, dla której jest stosowany. Konieczne jest użycie łańcucha „extern” przed deklaracją funkcji.
Na przykład atrybutu DllImport można użyć w aplikacji Windows Forms, która jest aplikacją zarządzaną w celu wywołania metody komponentu modelu obiektu (którego kod jest niezarządzany) w celu wykonania niektórych obliczeń.
Jest przeznaczony do importowania tradycyjnych bibliotek DLL, które eksportują swoje funkcje przy użyciu oryginalnego mechanizmu eksportu bibliotek DLL systemu Windows. Nie jest przeznaczony do używania kodu w zarządzanym zestawie (jako DLL), do którego można odwoływać się bezpośrednio w projekcie aplikacji zarządzanej.
Atrybut DllImport używa usługi InteropServices CLR, która wykonuje wywołanie z kodu zarządzanego do kodu niezarządzanego. Informuje również kompilator o lokalizacji implementacji użytej funkcji. Po wywołaniu niezarządzanej funkcji opakowania z tym atrybutem w kodzie zarządzanym CLR lokalizuje i ładuje niezbędną bibliotekę DLL. Marshals (konwertuje parametry zgodnie ze specyfikacją) i zwraca niezarządzany kod po wykonaniu wraz z odpowiednią konwersją parametrów.
Podczas korzystania z atrybutu DllImport należy zachować ostrożność, aby użyć prawidłowej nazwy biblioteki DLL i funkcji eksportowanej, ponieważ literówki mogą występować w miejscach, w których nie można ich łatwo wykryć.
