本帖最后由 yangxuefeng09 于 2014-08-16 09:55:38 编辑

解决方案 »

  1.   

    SystemTimeToFileTime这个函数是起个转换作用,并不是你所理解的内存拷贝。
    就好比你用CTime获取时间一样,本身CTime获取的时间是1970年1月1日零点到当前时间的秒数。
      

  2.   

    算出来与1601.1.1的时间差,以100纳秒为单位就是FILETIME了。
    多上网查查或MSDN,问题容易得多了。
      

  3.   

    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里
      

  4.   

    SystemTimeToFileTime,这个函数MSDN上有的,可以上去看看
      

  5.   

    查MSDN是Windows程序员必须掌握的技能之一。
      

  6.   

    这个函数,可以进行SYSTEMTIME的时间转化成为一个FILETIME的时间。
     但是我看了一下这两个结构体的大小是不一样的,一个是16个字节,另外的一个是8个字节。
     那么这个转换是如何进行的??????SYSTEMTIME要分别保存保存年月日时分秒毫秒,肯定要更多的字节。
    FILETIME是二进制的,当然只要较少的字节。
    比如字符串“12345678”要8个字节,而用int表示就只要4个字节。如果转换,那先弄懂格里历。