问题遇到的现象和发生背景
调试代码发现time.h文件竟然报了25个错误,这个不是系统文件吗,为什么有错,而且错误都集中在AppCRT Time Function片段中
问题相关代码,请勿粘贴截图
//
// AppCRT Time Functions
//
Success(return != 0)
Ret_writes_z(26)
Check_return _CRT_INSECURE_DEPRECATE(asctime_s)
_ACRTIMP char* __cdecl asctime(
In struct tm const* _Tm
);
#if STDC_WANT_SECURE_LIB
Success(return == 0)
Check_return_wat
_ACRTIMP errno_t __cdecl asctime_s(
Out_writes(_SizeInBytes) Post_readable_size(26) char* _Buffer,
In_range(>= , 26) size_t _SizeInBytes,
In struct tm const* _Tm
);
#endif
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(
errno_t, asctime_s,
Post_readable_size(26) char, _Buffer,
In struct tm const*, _Time
)
Check_return
_ACRTIMP clock_t __cdecl clock(void);
Ret_z
Success(return != 0)
Check_return _CRT_INSECURE_DEPRECATE(_ctime32_s)
_ACRTIMP char* __cdecl _ctime32(
In __time32_t const* _Time
);
Check_return_wat
_ACRTIMP errno_t __cdecl _ctime32_s(
Out_writes(_SizeInBytes) Post_readable_size(26) char* _Buffer,
In_range(>= , 26) size_t _SizeInBytes,
In __time32_t const* _Time
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(
errno_t, _ctime32_s,
Post_readable_size(26) char, _Buffer,
In __time32_t const*, _Time
)
Ret_z
Success(return != 0)
Check_return _CRT_INSECURE_DEPRECATE(_ctime64_s)
_ACRTIMP char* __cdecl _ctime64(
In __time64_t const* _Time
);
Check_return_wat
_ACRTIMP errno_t __cdecl _ctime64_s(
Out_writes_z(_SizeInBytes) Post_readable_size(26) char* _Buffer,
In_range(>= , 26) size_t _SizeInBytes,
In __time64_t const* _Time
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(
errno_t, _ctime64_s,
Post_readable_size(26) char, _Buffer,
In __time64_t const*, _Time
)
Check_return
_ACRTIMP double __cdecl _difftime32(
In __time32_t _Time1,
In __time32_t _Time2
);
Check_return
_ACRTIMP double __cdecl _difftime64(
In __time64_t _Time1,
In __time64_t _Time2
);
Success(return != 0)
Check_return _CRT_INSECURE_DEPRECATE(_gmtime32_s)
_ACRTIMP struct tm* __cdecl _gmtime32(
In __time32_t const* _Time
);
Check_return_wat
_ACRTIMP errno_t __cdecl _gmtime32_s(
Out struct tm* _Tm,
In __time32_t const* _Time
);
Success(return != 0)
Check_return _CRT_INSECURE_DEPRECATE(_gmtime64_s)
_ACRTIMP struct tm* __cdecl _gmtime64(
In __time64_t const* _Time
);
Check_return_wat
_ACRTIMP errno_t __cdecl _gmtime64_s(
Out struct tm* _Tm,
In __time64_t const* _Time
);
Success(return != 0)
Check_return _CRT_INSECURE_DEPRECATE(_localtime32_s)
_ACRTIMP struct tm* __cdecl _localtime32(
In __time32_t const* _Time
);
Check_return_wat
_ACRTIMP errno_t __cdecl _localtime32_s(
Out struct tm* _Tm,
In __time32_t const* _Time
);
Success(return != 0)
Check_return _CRT_INSECURE_DEPRECATE(_localtime64_s)
_ACRTIMP struct tm* __cdecl _localtime64(
In __time64_t const* _Time
);
Check_return_wat
_ACRTIMP errno_t __cdecl _localtime64_s(
Out struct tm* _Tm,
In __time64_t const* _Time
);
Check_return
_ACRTIMP __time32_t __cdecl _mkgmtime32(
Inout struct tm* _Tm
);
Check_return
_ACRTIMP __time64_t __cdecl _mkgmtime64(
Inout struct tm* _Tm
);
Check_return_opt
_ACRTIMP __time32_t __cdecl _mktime32(
Inout struct tm* _Tm
);
Check_return_opt
_ACRTIMP __time64_t __cdecl _mktime64(
Inout struct tm* _Tm
);
Success(return > 0)
Check_return_wat
_ACRTIMP size_t __cdecl strftime(
Out_writes_z(_SizeInBytes) char* _Buffer,
In size_t _SizeInBytes,
In_z Printf_format_string char const* _Format,
In struct tm const* _Tm
);
Success(return > 0)
Check_return_wat
_ACRTIMP size_t __cdecl _strftime_l(
Out_writes_z(_MaxSize) char* _Buffer,
In size_t _MaxSize,
In_z Printf_format_string char const* _Format,
In struct tm const* _Tm,
In_opt _locale_t _Locale
);
Check_return_wat
_ACRTIMP errno_t __cdecl _strdate_s(
Out_writes(_SizeInBytes) When(_SizeInBytes >= 9, Post_readable_size(9)) char* _Buffer,
In size_t _SizeInBytes
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(
errno_t, _strdate_s,
Post_readable_size(9) char, _Buffer
)
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(
Success(return != 0) char*, __RETURN_POLICY_DST, _ACRTIMP, _strdate,
Out_writes_z(9), char, _Buffer
)
Check_return_wat
_ACRTIMP errno_t __cdecl _strtime_s(
Out_writes(_SizeInBytes) When(_SizeInBytes >= 9, Post_readable_size(9)) char* _Buffer,
In size_t _SizeInBytes
);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(
errno_t, _strtime_s,
Post_readable_size(9) char, _Buffer
)
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(
char*, __RETURN_POLICY_DST, _ACRTIMP, _strtime,
Out_writes_z(9), char, _Buffer
)
_ACRTIMP __time32_t __cdecl _time32(
Out_opt __time32_t * _Time
);
_ACRTIMP __time64_t __cdecl _time64(
Out_opt __time64_t * _Time
);
Success(return != 0)
Check_return
_ACRTIMP int __cdecl _timespec32_get(
Out struct _timespec32* _Ts,
In int _Base
);
Success(return != 0)
Check_return
_ACRTIMP int __cdecl _timespec64_get(
Out struct _timespec64* _Ts,
In int _Base
);
运行结果及报错内容
错误(活动) E0169 应输入声明 CalPennPartCS C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\time.h 131
警告 C4003 类函数宏的调用“throw”参数不足 CalPennPartCS C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\time.h 135
错误 C2447 “{”: 缺少函数标题(是否是老式的形式表?) CalPennPartCS C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\time.h 135
我的解答思路和尝试过的方法
按照网上提供的方法,把time.h的编码格式调成UTF-8,或者UTF-8-BOM都不行
我想要达到的结果
请求各位指点