File:gmtime64.c
Line:63
Expression:(caltim <= _MAX_TIME64_T)
目前發現若是使用VS.Net 2005編譯Playback,並在64位元CPU上執行,
就會發生這個錯誤,若是使用VS.Net 2003則不會,
因此如果您是使用VS.Net 2005的話,
需要請您在Project Properties裡C/C++底下的Preprocessor Definitions加上
_USE_32BIT_TIME_T
即可解決這個錯誤。
localtime函数在vc++2005中的使用问题
struct
tm
*
ltime;
ltime = localtime((time_t *) & header -> ts.tv_sec); // header->ts.tv_sec为long类型
// 编译通过后运行,出现错误expression( * ptime <= _MAX_TIME64_T),通过调试(time_t *)&header->ts.tv_se
ltime = localtime((time_t *) & header -> ts.tv_sec); // header->ts.tv_sec为long类型
// 编译通过后运行,出现错误expression( * ptime <= _MAX_TIME64_T),通过调试(time_t *)&header->ts.tv_se
//c所指向的地址的内容为一个很大的负数,并不等于header->ts.tv_sec.所以问题出在类型强转上,只是我还 是搞不清楚为什么出现这个问题,后来的解决方案如下:
__int64 aa = header -> ts.tv_sec;
ltime = localtime( & aa);
__int64 aa = header -> ts.tv_sec;
ltime = localtime( & aa);
//这样就正常了,本程序是在vc++2005环境下使用winpcap开发,在vc6,0中并不需要强转.
//ltime = localtime(&header->ts.tv_sec);