我有一个非管理的结构,我想整理到c#看起来基本上是这样的:
struct DateTimeStruct{
double datetimestamp;
};
struct MyStruct{
char firstname[40];
char lastname[40];
DateTimeStruct bday;
unsigned integer bool1;
int val1;
};
正确的c#声明是什么?
答案 0 :(得分:1)
结构不是问题,它会按原样正确编组。
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
struct MyStruct{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40]
string firstname;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40]
string lastname;
DateTimeStruct bday;
uint bool1;
int val1;
}
当然,您可以将double转换为匹配的DateTime值。如何编码是不可能的问题。