У меня есть неуправляемая функция 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
}
Нормальный способ справиться с этим через Marshal.PtrToStructure
.