Я занимаюсь взаимодействием C ++ -> C #, и у меня есть куча структур, которые содержат друг друга, как матрешки. Проблема в том, что одно из этих «вложений» принимает форму массива фиксированной длины:
typedef struct tagBIRDREADING
{
BIRDPOSITION position;
BIRDANGLES angles;
BIRDMATRIX matrix;
BIRDQUATERNION quaternion;
WORD wButtons;
}
BIRDREADING;
typedef struct tagBIRDFRAME
{
DWORD dwTime;
BIRDREADING reading[BIRD_MAX_DEVICE_NUM + 1];
}
BIRDFRAME;
Следуя священным учениям Эрика Ганнерсона , я сделал следующее на C #:
[StructLayout(LayoutKind.Sequential, Pack = 0)]
public struct BIRDREADING
{
public BIRDPOSITION position;
public BIRDANGLES angles;
public BIRDMATRIX matrix;
public BIRDQUATERNION quaternion;
public ushort wButtons;
}
[StructLayout(LayoutKind.Sequential, Size = 127)]
public struct BIRDREADINGa
{
public BIRDREADING reading;
}
public struct BIRDFRAME
{
public uint dwTime;
public BIRDREADINGa readings;
}
Мой вопрос: как мне получить доступ к каждому из 127 экземпляров BIRDREADING
, содержащихся в BIRDREADINGa
и, следовательно, BIRDFRAME
? Или я ужасно ошибся?