如何在注册表中存储当前时间
How to store current time in registry?
是否有办法在注册表中存储时间?我正在使用MFC和CTime对象(它允许我使用CTimeSpan来计算时差),但任何c++解决方案将是伟大的。
通常,我建议您使用CTime::Serialize64
来使用内置的MFC序列化。唉,MFC没有提供简单的方法将数据序列化到注册表…
你有两个选择:
你可以走Shaktal在他的评论中推荐的路线,使用CTime::GetTime
来获得_time64_t
。
然后您可以使用CWinApp::WriteProfileString
将该值写入注册表(但首先将其转换为字符串)。当您需要它时,使用CWinApp::GetProfileString
将其读入字符串以获取字符串,将其转换为_time64_t
并使用=
将结果值分配给CTime
实例。
或者您可以使用CTime::GetAsSystemTime
将CTime64
实例中的日期和时间作为SYSTEMTIME
结构体返回。然后,您可以在注册表中使用CWinApp::WriteProfileBinary
写入SYSTEMTIME
。
要稍后读取它,只需使用CWinApp::GetProfileBinary
将注册表项读入SYSTEMTIME
,并将SYSTEMTIME
传递给适当的CTime
构造函数。
虽然这可能看起来比涉及_time64_t
的解决方案更乏味,但它在如何处理极端情况(例如夏令时,时区等)方面有一些优势,这些情况可能(或更有可能)对您的应用程序不重要。
我可以给你举个例子,但我是在iPhone上输入的这不是这种东西的理想界面
相关文章:
- 指向(数据)成员的指针作为非类型模板参数,例如具有自动存储持续时间/无链接
- 为什么具有静态存储持续时间的同一内联变量在包含在 VS2017 编译的两个翻译单元中时会构造和销毁两次
- 图问题:找出两个节点是否在每个节点的O(1)时间和O(2)存储中共享同一分支
- C++-需要读取存储在文件(.txt)中的时间戳并正确检索
- 具有静态存储持续时间的常量初始化变量的初始化顺序
- 如何将 time-uuid(存储在 boost uuid 中)转换为时间戳/自纪元以来的时间?
- 使用时间,时间应该如何存储为变量?
- 静态存储持续时间初始化
- 添加两个时间值存储为数据库中的字符串
- 在不同翻译单元中具有静态存储持续时间的依赖非局部常量浮点变量的常量初始化
- 访问和存储/解析性std :: Chrono ::持续时间:: milliseconds(cpprest)时使用什么类型
- 将时间戳存储在纳秒C 中
- 如何在双精度内存储时间
- C++ - 函数中的局部指针变量具有什么类型的存储持续时间以及它们存储在哪里?
- 变量在临时存储中存在多长时间
- 什么是静态存储持续时间的临时对象
- 如何使课程持续时间存储时间长度
- 将当前时间 simTime.dbl() 与以前存储的双精度值进行比较并不总是给出正确的答案......为什么?
- C++ 时间存储time_point表达式必须是可修改的左值
- 尝试使用chrono将时间存储到数组中