gpt4 book ai didi

c++ - mingw中的时间函数

转载 作者:行者123 更新时间:2023-11-28 03:15:20 24 4
gpt4 key购买 nike

我正在尝试实现此页面中给出的代码

http://msdn.microsoft.com/en-us/library/windows/desktop/aa366062%28v=vs.85%29.aspx

我正在使用 mingw (gcc) 来编译它。但是不能编译以下行。我已经包含了“time.h”。我进行了搜索,但找不到此“_localtime31_s”或其在 gcc 中的等效项。

error = _localtime32_s(&newtime, (__time32_t*) &pAdapter->LeaseObtained);
error = asctime_s(buffer, 32, &newtime);

这里的时间函数在哪里?谢谢

最佳答案

函数 localtime_sasctime_s 是 Microsoft 特定的扩展,由(某些版本的)MS 运行时库提供。这是由 MS 头文件提供的。由于这些是 MS 的版权并且不允许免费分发,mingw 提供了它自己的 header 版本 - 这些可能不包含这些扩展(当我在我的本地机器上使用 mingw 时他们肯定没有一段时间 - 我的主要这些天机器运行 Linux ...)。

请注意,将时间值转换为 time32_t * 可能不是一个好主意 - 如果您使用 time_t 编译代码,几乎肯定会咬到您不是 32 位值。

localtime_r函数是一个半标准版本,可以用来代替 localtime_s(您需要注意 32 位与 64 位时间值)。您当然也可以使用 localtime(除了必须关闭 MS 烦人的“此功能不安全,请改用 ..._s” - 我不 < em>真的 想将我对 strcpy 的 100 次使用转换为 strcpy_s,因为它已经在别处检查过,所以工作得很好)。

同样有asctime_r它提供了一个可重入版本。

也许您也可以将这些函数的原型(prototype)添加到文件中的某处,我相信只要您是为 Windows 编译,就可以解决问题:

MS 函数文档链接:localtime_sasctime_s .

关于c++ - mingw中的时间函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17085603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com