'_wctime32':无法将参数1从'const time_t*'转换为'const __time32_t*'

pea*_*ins 0 c++ visual-studio-2010

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, 
Run Code Online (Sandbox Code Playgroud)

它指向来自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
Run Code Online (Sandbox Code Playgroud)

Jes*_*ood 8

我想你有这个问题:

在Visual C++ 2005之前,Visual C++和Microsoft C/C++的版本,time_t是一个长整数(32位),因此无法用于2038年1月19日3:14:07 UTC之后的日期.默认情况下,time_t现在等效于__time64_t,但是定义_USE_32BIT_TIME_T会将time_t更改为__time32_t并强制许多时间函数调用采用32位time_t的版本.有关更多信息,请参阅各个时间函数文档中的标准类型和注释.

  • Jesse好建议帮助我寻找解决方案,它引导我:[microsoft的www] [1]**属性 - > C/C++ - >预处理器 - >预处理器定义**我添加了:**_ USE_32BIT_TIME_T**它解决这个问题.[1]:http://social.msdn.microsoft.com/Forums/vstudio/en-US/d1e92663-9804-4879-8446-da3a0bc5b86e/vc-vs2010-inline-header-errors?forum=vclanguage (2认同)