现在的位置: 首页 > 综合 > 正文

关于结构体成员,在传参过程中,数值发生变化(估计是我定义的结构体有不对的地方)

2013年05月03日 ⁄ 综合 ⁄ 共 1345字 ⁄ 字号 评论关闭

关于结构体成员,在传参过程中,数值发生变化(估计是我定义的结构体有不对的地方)。

结构体成员,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
-----------------------------现象:----------------------------------------------------

参考截图如下:

抱歉!评论已关闭.