现在的位置: 首页 > 综合 > 正文

32位gmtime在64位元机器上错误的解决 localtime函数在vc++2005中的使用问题

2014年03月11日 ⁄ 综合 ⁄ 共 700字 ⁄ 字号 评论关闭

 

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);

 

抱歉!评论已关闭.