Megosztás a következőn keresztül:


Explicit PInvoke használata c++ nyelven (DllImport attribútum)

A .NET-keretrendszer explicit platformhívási (vagy PInvoke-) funkciókat biztosít az Dllimport attribútummal, amelyekkel a felügyelt alkalmazások meghívhatnak nem felügyelt függvényeket a DLL-ekben csomagolva. Explicit PInvoke szükséges olyan helyzetekben, amikor a nem felügyelt API-k DLL-ként vannak csomagolva, és a forráskód nem érhető el. A Win32-függvények meghívásához például PInvoke szükséges. Ellenkező esetben használja az implicit P{Invoke parancsot; további információt a C++ Interop (Implicit PInvoke) használata című témakörben talál.

A PInvoke a DllImportAttribute használatával működik. Ez az attribútum, amely első argumentumként a DLL nevét veszi fel, a függvény deklarációja elé kerül minden használni kívánt DLL-belépési ponthoz. A függvény aláírásának meg kell egyeznie a DLL által exportált függvény nevével (de bizonyos típusátalakítások implicit módon is végrehajthatók a DllImport deklarációk felügyelt típusok tekintetében történő definiálásával.)

Az eredmény egy felügyelt belépési pont minden natív DLL-függvényhez, amely tartalmazza a szükséges átmeneti kódot (vagy csonkot) és az egyszerű adatátalakításokat. A felügyelt függvények ezután ezen belépési pontokon keresztül be tudnak hívni a DLL-be. A modulba a PInvoke eredményeként beszúrt kód teljes mértékben felügyelt.

Ebben a részben

Lásd még

Natív függvények meghívása felügyelt kódból