1
我有我試圖元帥被定義爲一個結構如下:元帥失敗與自定義大小的枚舉場結構
enum BBB {BB1 =1, BB2 =2}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
struct Foo
{
[MarshalAs(UnmanagedType.I2)]
public BBB F1;
public int F2;
public short F3;
}
好像元帥無法處理此枚舉字段規範並拋出例外: 不能作爲非託管結構編組;無法計算出有意義的大小或偏移量。 如果我刪除[MarshalAs(UnmanagedType.I2)],然後編組成功,但我希望能夠編組枚舉字段作爲自定義大小字段不一定是4字節。
有沒有人遇到過這個問題?
感謝德克的作品。 – dmg
如果我在F#中工作,我無法指定枚舉類型的大小:類型BBB = | BB1 = 1 | BB2 = 2? – dmg
@dmg:我對F#不太熟悉,但我的猜測是,那是不可能的。並非所有的.NET語言都支持相同的功能,並且與本機代碼的互操作性(也可以編組爲本地類型)並不是F#的目標(與C#不同)。 –