Преобразование 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
,