[英]c# pinvoke marshall struct
我有一個非托管的結構,我想編組到C#,基本上看起來像這樣:
struct DateTimeStruct{
double datetimestamp;
};
struct MyStruct{
char firstname[40];
char lastname[40];
DateTimeStruct bday;
unsigned integer bool1;
int val1;
};
正確的C#聲明是什么?
該結構不是問題,它將按原樣正確封送。
[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值取決於您。 從您的問題來看,如何編碼是毫無疑問的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.