VS 2010 Ultimate, 我发生了一些错误C2664,
我已根据网上发现的信息尝试过 - 添加#include - 更改常规属性'使用多字节字符集' 没有成功。
你有什么想法吗?c:\program files (x86)\microsoft visual studio 10.0\vc\include\time.inl(36): error C2664: '_ctime32' : cannot convert parameter 1 from 'const time_t *' to 'const __time32_t *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\program files (x86)\microsoft visual studio 10.0\vc\include\time.inl(42): error C2664: 'errno_t _ctime32_s(char *,size_t,const __time32_t *)' : cannot convert parameter 3 from 'const time_t *' to 'const __time32_t *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\program files (x86)\microsoft visual studio 10.0\vc\include\time.inl(49): error C2664: '_gmtime32' : cannot convert parameter 1 from 'const time_t *' to 'const __time32_t *'
Types pointed to are unrelated; conversion requires reinterpret_cast,
它指向来自MS VS的time.inl
_CRT_INSECURE_DEPRECATE(ctime_s) static __inline char * __CRTDECL ctime(const time_t * _Time)
{
#pragma warning( push )
#pragma warning( disable : 4996 )
return _ctime32(_Time);
#pragma warning( pop )
}
#if __STDC_WANT_SECURE_LIB__
static __inline errno_t __CRTDECL ctime_s(char *_Buffer, size_t _SizeInBytes, const time_t * _Time)
{
return _ctime32_s(_Buffer, _SizeInBytes, _Time);
}
#endif
答案 0 :(得分:8)
我认为你有this problem:
在Visual C ++ 2005之前的版本的Visual C ++和Microsoft C / C ++, time_t是一个long int(32位),因此不能用于日期 过去2038年1月19日3:14:07,UTC。 time_t现在相当于 默认为__time64_t ,但定义 _USE_32BIT_TIME_T会将time_t更改为__time32_t,并强制使用多个时间函数来调用 采取32位time_t 。有关更多信息,请参阅标准类型和 各个时间函数的文档中的注释。