代码之家  ›  专栏  ›  技术社区  ›  0___________

我可以在整个程序生命周期内保持句柄打开吗

  •  0
  • 0___________  · 技术社区  · 11 月前

    我有一个用于Windows应用程序的类,它控制面板亮度。

            h = CreateFile(displayName,
                GENERIC_READ | GENERIC_WRITE,
                0,
                NULL,
                OPEN_EXISTING,
                0, NULL);
    

    我可以长时间打开它吗(只要应用程序处于活动状态),或者我应该关闭它,只在需要时打开它?

    1 回复  |  直到 11 月前
        1
  •  2
  •   Jabberwocky    11 月前

    您可以随时打开文件句柄。绝对没有必要在需要时关闭和重新开放。

    这通常是像MS Word这样的应用程序所做的,只要用户没有关闭文档,.docx(或其他任何文件)文件HANDLE就会保持打开状态。

    这在以下情况下非常有用 CreateFile 与一起使用 dwShareMode 参数,而不是0,例如防止其他应用程序在文件打开时写入或删除该文件。