关于结构体成员,在传参过程中,数值发生变化(估计是我定义的结构体有不对的地方)
关于结构体成员,在传参过程中,数值发生变化(估计是我定义的结构体有不对的地方)。
结构体成员,C++接口中要求是WORD,我在C#中定义是UInt16。
但调用接口时,这数值怎么就变了....
有见解或建议的,敬请发言吧!!
-----------------------------说明:----------------------------------------------------
厂商提供的是C++的接口,其中一个结构体
// 日期和时间 typedef struct { WORD wYear; // 年 WORD wMonth; // 月 WORD wDay; // 日 WORD wHour; // 时 WORD wMinute; // 分 WORD wSecond; // 秒 } YH_NET_TIME_S, *LPYH_NET_TIME_S;
我在C#中的定义是,
[StructLayout(LayoutKind.Explicit)] public struct TagYh_Net_Time { /// <summary> /// WORD wYear; // 年 /// </summary> [FieldOffsetAttribute(0)] public UInt16 wYear; /* WORD wYear; // 年 */ /// <summary> /// WORD wMonth; // 月 /// </summary> [FieldOffsetAttribute(2)] public UInt16 wMonth; /* WORD wMonth; // 月 */ /// <summary> /// WORD wDay; // 日 /// </summary> [FieldOffsetAttribute(4)] public UInt16 wDay; /* WORD wDay; // 日 */ /// <summary> /// WORD wHour; // 时 /// </summary> [FieldOffsetAttribute(6)] public UInt16 wHour; /* WORD wHour; // 时 */ /// <summary> /// WORD wMinute; // 分 /// </summary> [FieldOffsetAttribute(8)] public UInt16 wMinute; /* WORD wMinute; // 分 */ /// <summary> /// WORD wSecond; // 秒 /// </summary> [FieldOffsetAttribute(10)] public UInt16 wSecond; /* WORD wSecond; // 秒 */ }
-----------------------------说明:----------------------------------------------------
-----------------------------现象:----------------------------------------------------
调用接口的时候,我给的年份是2013,
但从DebugView的日志中,看到的居然是26880
-----------------------------现象:----------------------------------------------------
参考截图如下: