我想從C++元帥到C#中的結構,看起來像這樣的一個C數組的第一個元素的結構:如何編組包含指向未知類型
typedef struct FooStruct {
Uint8 bytesPerThingie;
void *arrayOfThingies;
// other members ...
}
所以,在這個case有兩個未知數:
- 數組中的元素數。
- 每個元素的大小(以字節爲單位)。
我已經成功地封的結構本身之前有這樣的定義:
[StructLayout(LayoutKind.Sequential)]
public struct FooStruct {
public byte bytesPerThingie;
public IntPtr arrayOfThingies;
// other members...
}
但現在我需要檢查和修改嵌入式陣列。
我明白
- 其本身而言,一個blittable類型的blittable元件的陣列是 本身blittable,而不是當它被用作一個場一 結構內。
- 從非託管代碼封送到.NET Framework時,數組長度爲 ,該值由SizeConst參數確定,如果不是blittable,則數組元素的非託管類型 可選。
即使假定在這種情況下數組中的元素屬於blittable類型,如果直到運行時才能知道數組的大小,我怎樣才能設置SizeConst,一個編譯時參數?
你不能使用'SizeConst'。你很可能不得不自己進行編組。 – 2012-03-26 20:49:26