错误发生在这几句部分:
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
快捷操作:
坚其志,苦其心,劳其力,事无大小,必有所成。
@如有侵权,请作者本人尽快与我(chrayo#163.com)联系,我将及时删除侵权内容。