错误发生在这几句部分:

struct tm *ltime;
char timestr[16];
ltime=localtime(&header->ts.tv_sec);

错误提示为:

error C2664: “localtime”: 不能将参数 1 从“const long *__w64 ”转换为“const time_t *”

分析:

VC6.0里,time_t的定义是:
typedef long time_t;
其实也就是long,所以可以通用。

但在VS2005中,不一样了:
如何没有定义_USE_32BIT_TIME_T时
typedef __time64_t time_t;
typedef __int64 __time64_t;
也就是说time_t是64位整型的。

在项目属性的'C/C++'中的“预处理定义”中加上_USE_32BIT_TIME_T就可以直接使用 long Time了。

当然最好把你的代码改为:
struct tm* date_tm;
time_t Time;

time(&Time);
date_tm = localtime(&Time);

这样就可以通用了。

【参考资料 感谢作者】
http://blog.sina.com.cn/s/blog_4a5cd6280100h36z.html 

相关文章:

  • 2022-12-23
  • 2021-07-07
  • 2021-04-22
  • 2021-08-22
  • 2021-09-03
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-16
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-28
  • 2022-12-23
  • 2022-01-27
相关资源
相似解决方案