У меня есть встроенная запись в Delphi, как это:
TKernel = packed record
State: Integer;
end;
TKernels = array[0..19] of TKernel;
TShell = packed record
Kernels: TKernels;
end;
В этом
SizeOf(TShell) = 20 * SizeOf(TKernel).
Но если я использую C #:
struct Shell
{
Kernel[] Kernels;
public Shell(int i = 20)
{
Kernels = new Kernel[20];
}
}
, то:
Marshal.SizeOf (Shell) == 4
это означает, что Ядра - это просто указатель.
Я хочу InterOp C # с Delphi, поэтому мне нужно, чтобы структура памяти была такой же, так как я должен объявить структуру в C #, кроме записи 20 подобий Kernel KernelOne; Kernel KernelTwo 。。。