什么是CTime(有没有)32位模拟?

时间:2011-12-14 05:31:08

标签: c++ mfc atl

我发现<time.h>中有ctime和_ctime_32,但ctime也不是CTime。有CTime 32位模拟吗?或者类似于32位CTime和__time32_t。我使用64位版本遇到了兼容性问题。

好吧也许我根本不需要CTime,我正在接收__time32_t并使用它来提供变体时间:

SYSTEMTIME st;
   CTime tmp =  pCurPar[pot->numSubsection].SysTime;
      tmp.GetAsSystemTime( st );
    SystemTimeToVariantTime(&st,&pot->Value.date);

但我认为

CTime tmp =  pCurPar[pot->numSubsection].SysTime;

转换不正确,因为我的.SysTime是__time32_t而CTime使用的是64位版本。

即使我有一种情况,我需要提供它作为time32_t,但pot->Value.intVal = DayRec[pot->numSubsection].startTime.GetTime();我发出警告Warning 3 warning C4244: '=' : conversion from '__time64_t' to 'INT', possible loss of data

1 个答案:

答案 0 :(得分:1)

我只有Visual Studio Express并且无法测试它,但编译器是否应该自动将32位类型转换为64位类型?反过来这样做会导致关于失去精度的警告,但是32到64位的转换应该不成问题。测试它,如果不起作用则返回。