Sdílet prostřednictvím


Použití explicitního PInvoke v jazyce C++ (atribut DllImport)

Rozhraní .NET Framework poskytuje funkce explicitního volání nespravovaného kódu (PInvoke) s atributem Dllimport, aby povolilo spravovaným aplikacím volat nespravované funkce zabalené uvnitř knihovny DLL.Explicitní PInvoke je vyžadováno v situacích, kde jsou nespravovaná rozhraní API zabalena jako knihovny DLL a není k dispozici zdrojový kód.Například volání funkcí Win32 vyžaduje PInvoke.V opačném případě použijte implicitní P{Invoke; další informace naleznete v tématu Použití interoperability C++ (implicitní PInvoke).

PInvoke pracuje pomocí DllImportAttribute.Tento atribut, který převezme název knihovny DLL jako svůj první argument, je umístěn před deklaraci funkce pro každý vstupní bod knihovny DLL, která bude použita.Signatura funkce se musí shodovat s názvem funkce, která je exportovaná knihovnou DLL (ale některé převody typů mohou být provedeny implicitně definováním deklarací DllImport z hlediska spravovaných typů.)

Výsledek je spravovaný vstupní bod pro každou nativní funkci knihovny DLL, která obsahuje nezbytný přechodný kód (nebo převod) a jednoduché převody dat.Spravované funkce lze poté volat do knihovny DLL prostřednictvím těchto vstupních bodů.Kód, který je vložený do modulu jako výsledek PInvoke, je zcela spravován a explicitní PInvoke je podporováno pro kompilace /clr, /clr:pure a /clr:safe.Další informace naleznete v tématu Čistý a ověřitelné kódu (C + +/ CLI).

V tomto oddíle

Viz také

Koncepty

Volání nativní funkce ze spravovaného kódu