《windows核心编程》上面的代码的时间转换的问题!!! 本帖最后由 yangxuefeng09 于 2014-08-16 09:55:38 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SystemTimeToFileTime这个函数是起个转换作用,并不是你所理解的内存拷贝。就好比你用CTime获取时间一样,本身CTime获取的时间是1970年1月1日零点到当前时间的秒数。 算出来与1601.1.1的时间差,以100纳秒为单位就是FILETIME了。多上网查查或MSDN,问题容易得多了。 FILETIME 结构表示 1601 年 1 月 1 日以来的 100 纳秒的时间间隔数。SYSTEMTIME里面保存着年月日时分秒毫秒。假如一个SYSTEMTIME结构保存着2014年8月16日12:00:00则转换成FILETIME的方法是:用2014年8月16日12:00:00减去1601 年 1 月 1 日00:00:00所得的时间间隔的纳秒数再除以100.然后把这个结果(64位,8个字节的整数)放到FILETIME里,高32位放到dwHighDateTime里,低32位放到dwLowDateTime里 SystemTimeToFileTime,这个函数MSDN上有的,可以上去看看 查MSDN是Windows程序员必须掌握的技能之一。 这个函数,可以进行SYSTEMTIME的时间转化成为一个FILETIME的时间。 但是我看了一下这两个结构体的大小是不一样的,一个是16个字节,另外的一个是8个字节。 那么这个转换是如何进行的??????SYSTEMTIME要分别保存保存年月日时分秒毫秒,肯定要更多的字节。FILETIME是二进制的,当然只要较少的字节。比如字符串“12345678”要8个字节,而用int表示就只要4个字节。如果转换,那先弄懂格里历。 键盘钩子的问题,求教 C++实现Log输出的问题 基于单文档的串口通讯,求教 对话框调用数据的问题 能否在生成dll时指定该dll只能被唯一的exe文件调用? 关于DirectX的两个问题 求教:组合框结合单选按钮的用法 ★★★www.csdn.com.cn★★★已经开通~目前正在测试阶段~!! 一个算法问题 怎样在程序中自动选中CListCtrl里的选项 安装程序的进度显示和实际安装动作,是不同线程吗? Webbrowser访问某些网页脚本执行部成功的问题(可能是因为跨域)
就好比你用CTime获取时间一样,本身CTime获取的时间是1970年1月1日零点到当前时间的秒数。
多上网查查或MSDN,问题容易得多了。
SYSTEMTIME里面保存着年月日时分秒毫秒。
假如一个SYSTEMTIME结构保存着2014年8月16日12:00:00则转换成FILETIME的方法是:
用2014年8月16日12:00:00减去1601 年 1 月 1 日00:00:00所得的时间间隔的纳秒数再除以100.
然后把这个结果(64位,8个字节的整数)放到FILETIME里,高32位放到dwHighDateTime里,低32位放到dwLowDateTime里
但是我看了一下这两个结构体的大小是不一样的,一个是16个字节,另外的一个是8个字节。
那么这个转换是如何进行的??????SYSTEMTIME要分别保存保存年月日时分秒毫秒,肯定要更多的字节。
FILETIME是二进制的,当然只要较少的字节。
比如字符串“12345678”要8个字节,而用int表示就只要4个字节。如果转换,那先弄懂格里历。