gpt4 book ai didi

c++ - 使用在 Windows 7 中以非管理模式运行的应用程序编写日志文件

转载 作者:太空宇宙 更新时间:2023-11-04 11:35:28 25 4
gpt4 key购买 nike

我的应用程序需要编写和维护一个日志文件,并且它没有在管理模式下运行。我的问题是在这种情况下我的应用程序可以写入什么路径。我怎样才能获得那条路?

最佳答案

有两个不错的选择:

  1. 使用 Windows 事件日志。您可以轻松地为您的应用程序创建自己的日志(如果您希望生成大量消息),或者您可以将消息添加到标准日志中(如果您希望只生成少量、偶尔的消息)。

    由于这是一项内置功能,任何技术人员都会了解它并能够轻松找到您的日志文件。它还与集中式管理系统具有很强的互操作性。

  2. 写入保存在应用程序数据目录中的文本文件。这是应用程序应该存储非用户数据文件的地方,因为正如您所提到的,应用程序目录不是您可以假定写入权限的地方。

    对于特定计算机特定内容的日志文件,我会说这是本地(非漫游)应用程序数据,因此您需要 Local App Data 文件夹。我确定有一个用于此的 Qt 包装器,但在 Win32 中,您将调用 SHGetKnownFolderPath 函数,指定 KNOWNFOLDERIDFOLDERID_LocalAppData .

    请记住,此函数会分配内存来存储返回的字符串——您必须在完成后通过调用 CoTaskMemFree 来释放它。

    示例代码:

    // Retrieve the path to the local App Data folder.
    wchar_t* pszPath = 0;
    SHGetKnownFolderPath(FOLDERID_LocalAppData, 0, NULL, &pszPath);

    // Make a copy of that path.
    std::wstring path(pszPath);

    // Free the memory now, so you don't forget!
    CoTaskMemFree(static_cast<void*>(pszPath));

关于c++ - 使用在 Windows 7 中以非管理模式运行的应用程序编写日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23202754/

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