【问题标题】:How to track the number of times my console application in C++14 has been launched?如何跟踪我的 C++14 控制台应用程序的启动次数?
【发布时间】:2019-11-25 00:21:06
【问题描述】:

我正在构建一个准系统记事本风格的项目(基于控制台,目前还没有 GUI),我想跟踪、显示(并在以后以某种方式使用它)的次数控制台应用程序已启动。我不知道这是否有帮助,但我正在 Windows 10 上构建我的控制台应用程序,但我希望它能够在 Windows 7+ 以及 Ubuntu 等 Linux 发行版上运行。

我不喜欢将详细信息存储在文件中,然后再从文件中读取以维护count。请提出详细说明如何执行此操作的方法或任何其他资源。

我会在上面的引用中加上删除线,但显然没有。

请注意,这是我第一次构建这样的项目,所以我可能不熟悉高级的东西......所以,当您回答时,请尝试按照经验不足的软件开发人员的要求进行解释。

谢谢,祝你愉快!

编辑: 似乎一般建议是使用文本文件来保护可移植性并考虑到这样一个事实,即如果下线,我需要存储一些额外的信息,即文本文件会派上用场。鉴于此,我将把精力集中在文本文件上。

感谢大家让我的努力不至于偏离轨道!

【问题讨论】:

  • 如果你想要便携,文本文件是唯一的方法。特别是在没有 Windows 注册表之类的东西的 Linux 上。为什么不想使用文件?你为什么要这个启动计数器?它应该解决什么问题?
  • 如果您不想自己创建文本文件,您也许可以使用库。一个非常大的库,支持类似的东西是 Qt:doc.qt.io/qt-5/qsettings.html。如果您在此处使用本机格式,则设置将存储在 Windows 系统上的注册表和 Linux 上的文本文件中。
  • @Someprogrammerdude 我认为拥有一个文本文件只是为了计算应用程序已启动的次数似乎有点矫枉过正。我总是可以提供有关其使用的更多细节,但作为一个对隐私直言不讳的人,这违背了我的意识形态。
  • 如果您已经在使用某种持久性设置,请进行只读设置runCount,用户无法对其进行相应修改和更新
  • “我认为拥有一个文本文件只是为了计算应用程序已启动的次数似乎有点矫枉过正”鉴于 PC 上唯一的持久内存是 bios,我会建议您的其他方法有些有限。由于需求随时间而变化;什么不叫它只是通用的运行统计数据并将其保存为允许您在何时添加更多信息的格式

标签: c++ c++14 console-application


【解决方案1】:

我不喜欢将详细信息存储在文件中

在 cmets 中,您写道原因是安全性,在这种情况下您考虑使用文件作为“过度杀伤”。

安全问题可以轻松解决 - 只需加密文件即可。您可以像这样使用library 来完成它。

此外,由于每次打开/关闭应用程序时您只对文件进行一次写入和读取,并且文件应该只占用少量字节来存储这些数据,我认为它是正确的,可移植的解决方案。

如果你还是不想使用文件,可以使用windows registry to store数据,但是这个方案不便携

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 2016-03-07
    • 2020-08-24
    • 1970-01-01
    相关资源
    最近更新 更多