Udostępnij za pośrednictwem


Używanie jawnej funkcji PInvoke w języku C++ (atrybut DllImport)

.NET Framework dostarcza funkcje jawnego wywołania platformy (lub PInvoke) z atrybutem Dllimport w celu umożliwienia zarządzanym aplikacjom wywoływania funkcji niezarządzanych spakowanych wewnątrz bibliotek dll.Jawne PInvoke jest wymagane dla sytuacji, gdy niezarządzane interfejsy API są spakowane jako biblioteki dll i kod źródłowy nie jest dostępny.Na przykład wywoływanie funkcji Win32 wymaga PInvoke.W przeciwnym razie, należy użyć niejawnego PInvoke; zobacz Korzystanie z międzyoperacyjności języka C++ (niejawna funkcja PInvoke), aby uzyskać więcej informacji.

PInvoke działa przy użyciu DllImportAttribute.Atrybut ten, który przyjmuje nazwę biblioteki DLL jako pierwszy argument, jest umieszczony przed deklaracją funkcji dla każdego wpisu biblioteki DLL, który będzie używany.Podpis funkcji musi pasować do nazwy funkcji wyeksportowanej przez bibliotekę DLL (ale niektóre konwersje typu mogą być przeprowadzone niejawnie przez zdefiniowanie deklaracji DllImport w zakresie typów zarządzanych.)

Wynik jest zarządzanym wpisem dla każdej natywnej funkcji DLL, która zawiera niezbędny kod przejściowy (lub wywołanie 32-bitowe) i proste konwersje danych.Zarządzane funkcje mogą później odwoływać się do biblioteki DLL przez te wpisy.Kod dodany do modułu jako wynik funkcji PInvoke jest w pełni zarządzany, jawna funkcja PInvoke jest obsługiwana dla kompilacji /clr, /clr:pure i /clr:safe.Aby uzyskać dodatkowe informacje, zobacz Kod czysty i weryfikowalny (C++/CLI).

W tej sekcji

Zobacz też

Koncepcje

Wywoływanie funkcji natywnych z kodu zarządzanego