Udostępnij za pośrednictwem


Za pomocą jawnego PInvoke w C++ (atrybut DllImport)

.NET Framework zapewnia wyraźne funkcji Invoke platformy (lub PInvoke) z Dllimport atrybutu, aby umożliwić zarządzane aplikacje do wywoływania niezarządzanego funkcje spakowane wewnątrz biblioteki DLL.Jawne PInvoke jest wymagana dla sytuacji, kiedy niezarządzanego API są pakowane jako biblioteki DLL i kod źródłowy nie jest dostępny.Na przykład wywołanie funkcji Win32 wymaga PInvoke.W przeciwnym razie użyj niejawna P {Invoke; zobacz Za pomocą Interop C++ (niejawna PInvoke) Aby uzyskać więcej informacji.

PInvoke działa za pomocą DllImportAttribute.Ten atrybut, który ma nazwę biblioteki DLL, jako pierwszy argument, jest umieszczana przed deklaracji funkcji dla każdego punktu wejścia biblioteki DLL, która będzie używana.Podpisu funkcji musi odpowiadać nazwie funkcji eksportowanych przez DLL (ale konwersji niektórych typów można niejawnie wykonywany przez definiowanie DllImport deklaracje względem typów zarządzanych.)

Wynik jest zarządzany punkt wejścia dla każdego macierzystych funkcji DLL, która zawiera kod konieczne przejście (lub thunk) i konwersje proste dane.Funkcje zarządzanych można następnie wywoływać DLL przez te punkty wejścia.Kod dodaje się do modułu jako wynik funkcji PInvoke całkowicie jest zarządzany i jawne PInvoke jest obsługiwana dla /clr, /clr:pure, i /clr:safe kompilacji.Aby uzyskać więcej informacji, zobacz Kod czystej i zweryfikowania (C + +/ CLI).

W tej sekcji

Zobacz też

Koncepcje

Wywoływanie funkcji macierzystych z kodu zarządzanego