我試圖做一個卡倫德,所以我使用的time_t和localtime_s存儲時間和日期信息,然後將其存儲在日曆類的單個成員:日曆功能崩潰「localtime_s」
void Callendar::Initialize()
{
time_t now = time(0);
tm *localTime = null;
localtime_s(localTime, &now);
LocalSeconds = localTime->tm_sec;
LocalMinutes = localTime->tm_min;
LocalHours = localTime->tm_hour;
LocalDays = localTime->tm_mday;
LocalMonths = localTime->tm_mon;
LocalYears = localTime->tm_year;
DaysSinceSunday = localTime->tm_wday;
DaysSinceJanuaryFirst = localTime->tm_yday;
HoursDaylightSavings = localTime->tm_isdst;
}
所有編譯好,但在運行時,我得到:
調試斷言失敗!
程序:C:\用戶\ MYPC \桌面\框架\框架\調試\ Framework.exe 文件:F:\ DD \ vctools \ crt_bld \ self_x86 \ CRT \ SRC \ loctim64.c行:69
表達:(!PTM = NULL)
後,我關閉失敗的斷言消息,我在這條線得到一個非標準的調試錯誤:
static __inline errno_t __CRTDECL localtime_s(struct tm * _Tm, const time_t * _Time)
{
return _localtime64_s(_Tm, _Time);
}
這基本上是調用* localtime_s的結果(localTime,&現在); *在日曆:初始化() 我可能使用這個功能的一個棄用版本嗎?我知道還有其他的功能來獲取本地時間,但我不知道哪個是「正確的」。已經向我建議我不應該使用'localtime',但看似localtime_s也不行。