c++ C# struct 转换
c++ struct
typedef struct _GLYDEPOSITCOUNTER {
unsigned int EventNumber;
struct tm Time;
unsigned int dwSquentialNo;
unsigned int dwUserID;
GLYCOUNTERS DepositData;
} GLYDEPOSITCOUNTER, *LPGLYDEPOSITCOUNTER;
struct tm Time;
Each data range is as described below.
tm_year: 2000 to 2099, tm_mon: 1 to 12, tm_mday: 1 to 31,
tm_hour: 0 to 23, tm_min: 00 to 59, tm_sec: 00 to 59
头文件里没有介绍这个struct tm Time,
文档里只是说了它的取值范围。
我现在的c#转换是:
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct Time
{
public uint tm_year;
public uint tm_mon;
public uint tm_mday;
public uint tm_hour;
public uint tm_min;
public uint tm_sec;
}
转换出来的结果和上面介绍的取值不一样,我想肯定转换错了,请高手们帮忙,多谢。
------解决方案--------------------struct tm的定义在<time.h>中,是9个int。
struct tm {
int tm_sec; /* seconds after the minute - [0,59] */
int tm_min; /* minutes after the hour - [0,59] */
int tm_hour; /* hours since midnight - [0,23] */
int tm_mday; /* day of the month - [1,31] */
int tm_mon; /* months since January - [0,11] */
int tm_year; /* years since 1900 */
int tm_wday; /* days since Sunday - [0,6] */
int tm_yday; /* days since January 1 - [0,365] */
&n