void CTimerShutDownDlg::ViewTime()
{
    CSetMenu fram;
SYSTEMTIME sysTime;
memset(&sysTime,0,sizeof(SYSTEMTIME));
    sysTime=fram.sysTime;
m_nSetDown.Format("%d年%d月%d日%d点%d分%d秒",sysTime.wYear,sysTime.wMonth,sysTime.wDay,sysTime.wHour,sysTime.wMinute,sysTime.wSecond);
    UpdateData(false);
}
我在另外一个类CSetMenu里面取得了一个时间保存在sysTime里面。我现在想把它转到另外一个类里面。并显示出来。但是不成功。数据在本来的类中是正确的。但赋过来后就错了,显示52428。请问各位大哥是怎么回事!?请耐心教我。

解决方案 »

  1.   

    m_nSetDown是要显示那个类里面的一个属性吗?
      

  2.   

    保证sysTime的生命期,防止访问时变量已经析构
      

  3.   

    m_nSetDown是一个STATIC的变量。
    我的是意图是弹出一个对话框,取得设置的时间,再传回主窗口!
    这样会不会析构啊?
      

  4.   

    SYSTEMTIME是结构体,结构体不能够直接赋值
    用memcpy(&sysTime,&(fram.sysTime), sizeof(SYSTEMTIME));看看还有取时间的时候GetLocalTime()和GetSystemTime()是不同的
      

  5.   

    还是不行啊。大哥。我没有用GetLocalTime()以及那个函数。我用EDIT对话框取得时间后,在那个对话框用SetLocalTime()函数设置系统时间成功。但赋值过来后改在用主窗口用SetLocalTime失败。实在是搞不懂了。
      

  6.   

    类之间的继承关系是不是正确!
    还有,当时我用的是SYSTEMTIME *sysTime=new SYSTEMTIME;
    不过似乎你这个没有问题,用结构体指针看看行不行