哪个库 - std::chrono::system_clock [关闭]

Posted

技术标签:

【中文标题】哪个库 - std::chrono::system_clock [关闭]【英文标题】:Which library - std::chrono::system_clock [closed] 【发布时间】:2019-08-16 12:59:26 【问题描述】:

哪个 .dll 文件包含“std::chrono::system_clock”方法?

我在文档中找不到任何有用的信息。

编辑: 我想创建自己的函数版本,所以我想重建文件并在我自己的应用程序的导入表中替换它

【问题讨论】:

你是指哪个标题?您使用的是哪个文档?在您可以找到的标题中未提及的内容不应自称为“文档” 我认为它在msvcpNNN.dll 中(其中“NNN”是 VC++ 可再发行组件的版本号)。你到底为什么想知道呢? @NikosC。我想创建自己的函数版本,所以我想重建文件并在我自己的应用程序的导入表中替换它 我认为您必须编辑 chrono 标头并重建您的 dll。对我来说,标题位于:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.21.27702\include 但是我可能落后了一些版本,因为我最近没有在家用笔记本电脑上使用过 VS。 这不会很好地工作。为什么要选择性地替换部分工具链的标准库实现? 【参考方案1】:

您只需发送电子邮件至#include <chrono>。无需进一步部署。

【讨论】:

【参考方案2】:

好吧,如果不知道您的实际目标(您说“了解规则”),就不可能告诉您实现目标的正确方法。我只能告诉你,不是这个。


如果可能的话,我只想这样做

对于一些可能的价值,也许吧。

这种类型的代码可能是在标头中定义的,而不是内置在运行时中。因此,您只需“需要”修改标题。但是,对于期望类型以某种方式显示的其余运行时呢?您刚刚在第一关就违反了单一定义规则。

不言而喻:

不要这样做。

当您修改标准库时,您的程序具有未定义的行为,即使您可以设法获得对实现内部的足够控制以使其在不崩溃和/或着火的情况下工作。

要“正确”执行此操作,您必须分叉并重建整个标准库实现,以使其内容保持一致。祝你好运。


相反,如果您想使用看起来像 std::chrono::system_clock 的类型(它不是“方法”或成员函数——它是一个类)但行为不同,然后在自己的命名空间中自己定义这样的类型

多年来,人们在模拟实现功能时一直在​​这样做。您的单元测试框架应该附带一些文档,教您如何成功可靠地模拟功能。

【讨论】:

以上是关于哪个库 - std::chrono::system_clock [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

std::chrono::system_clock::now() 考虑操作系统配置的时区

如何找到纪元时间戳和 std::chrono::system_clock::now 之间的时间差(以毫秒为单位)

std::chrono::system_clock.now().time_since_epoch().count() 的值是不是单调增加?

当前本地时间高精度

std c++ 获取运行时间封装

C++中时间转换