Преобразование IntPtr в качестве указателя на структуру C#

У меня есть неуправляемая функция C++, которая выглядит следующим образом:int myfunction(LPVOID p1, LPVOID p2)

Моя обертка в C# берет extern static int mywrapperFunction(IntPtr p1, IntPtr p2)

В моем определении функции-оболочки я хочу отнести IntPtr к структуре.

В C++:

int myfunction(LPVOID p1, LPVOID p2)
{
    (MYFIRSTSTRUCTURE *)abc = (MYFIRSTSTRUCTURE *)p1;
    (MYSECONDSTRUCTURE *)efg = (MYSECONDSTRUCTURE *)p1;
    //rest of the operation involves this abc and efg
}

Мне нужно сделать аналогичную вещь в C#:

int mywrapperFunction(IntPtr p1, IntPtr p2)
{
   //how to consume IntPtr p1 and IntPtr p2 for C# structure similar to MYFIRSTSTRUCTURE and //MYSECONDSTRUCTURE
}

1 ответ

Решение

Нормальный способ справиться с этим через Marshal.PtrToStructure,

Другие вопросы по тегам