32位gmtime在64位元机器上错误的解决

 
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中的使用问题

分类: 计算机基础 342人阅读 评论(0) 收藏 举报

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
   //c所指向的地址的内容为一个很大的负数,并不等于header->ts.tv_sec.所以问题出在类型强转上,只是我还 是搞不清楚为什么出现这个问题,后来的解决方案如下:
__int64 aa 
=  header -> ts.tv_sec;
ltime 
=  localtime( & aa);
//这样就正常了,本程序是在vc++2005环境下使用winpcap开发,在vc6,0中并不需要强转.
//ltime = localtime(&header->ts.tv_sec);

 

你可能感兴趣的:(properties,File,计算机基础,preprocessor,playback)