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#不同)。 –