C#实现C++的SYSTEMTIME类型

做上位机开发免不了要调.dll库,最近有个要实现的库给过来,但是没有任何说明文档,只要下来一份C++的调用示例。按部就班,用到哪里写哪里,按照类型字长等,转成C#的类型。

碰到SYSTEMTIME,C#没有对应类型,这种情况下需要去到C++类型的定义里面。

typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME;

参考格式,在C#中封装好对应的结构体,C++中WORD对应C#中UInt16。

		[StructLayout(LayoutKind.Sequential)]
		public struct SYSTEMTIME
		{
			public UInt16 wYear;
			public UInt16 wMonth;
			public UInt16 wDayOfWeek;
			public UInt16 wDay;
			public UInt16 wHour;
			public UInt16 wMinute;
			public UInt16 wSecond;
			public UInt16 wMilliseconds;
		}

使用的时候再赋值就好了。

SYSTEMTIME sYSTEMTIME = new SYSTEMTIME();
                DateTime dateTime = DateTime.Now;
                sYSTEMTIME.wYear = (ushort)dateTime.Year;
                sYSTEMTIME.wMonth = (ushort)dateTime.Month;
                sYSTEMTIME.wDayOfWeek = (ushort)dateTime.DayOfWeek;
                sYSTEMTIME.wDay = (ushort)dateTime.Day;
                sYSTEMTIME.wHour = (ushort)dateTime.Hour;
                sYSTEMTIME.wMinute = (ushort)dateTime.Minute;
                sYSTEMTIME.wSecond = (ushort)dateTime.Second;
                sYSTEMTIME.wMilliseconds = (ushort)dateTime.Millisecond;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值