Мне нужно получить значение от C
неуправляемый код. Фактически я вызывал функцию из неуправляемого, возвращаемый тип функции - это точка, где точка - это структура.Получите значение от неуправляемого кода до управляемого кода
структура упоминается следующим образом
typedef struct point
{
Poly* pol;
NL_DEGREE p;
VECTOR* vec;
} Point;
Где Poly
и VECTOR
являются структура.
На самом деле я получил точку возврата значения как IntPtr
в C#
.После получения значения IntPtr
, я попытался преобразовать это Intptr
к Array
. Преобразование Array
в этом ниже.
point[] Q = new point[2];
int size= Marshal.SizeOf(new point());
for (int i = 0; i < 2; i++)
{
Q[i] = (point)Marshal.PtrToStructure(new IntPtr(Qptr.ToInt32() + (i * size)), typeof(point));
}
Но после получения массива значение каждого элемента структуры стали null.What я сделал неправильно на этом, пожалуйста, кто-нибудь предложить мне ......
Я упомянул структуру, созданную в C# Detaily ниже.
public unsafe struct point
{
public Poly* pol;
public NL_DEGREE p;
public vECTOR* knt;
}
где поли
public unsafe struct Poly
{
public Int32 n;
public cpoint* Pw;
}
Coint также структура А
public struct cpoint
{
public double x;
public double y;
public double z;
public double w;
}
где VECTOR
public unsafe struct VECTOR
{
public Int32 m;
public double *U;
}
Спасибо за ответ, я поставил деталь структуры, созданной в C# редактируются в той же должности – Shankar