none
核心对象句柄的保存,销毁 RRS feed

  • 问题

  • 如何复制核心对象句柄,何时关闭我一直不大明白。我们定义的普通变量在超出作用范围后自动销毁,句柄会吗?
    实际中遇到这样问题:

    class CMyView
    {
        void SpamProcess()
    {
        PROCESS_INFORMATION pi;
        CreateProcess(...&pi);
        m_hProcess=pi.hProcess;    //??直接赋值对吗?是不是应该用duplicateHandle???
    }

        void EndProcess()
    {
        CloseHandle(m_hProcess);    //??若SpamProcess用=进行句柄复制,这里还要不要关闭,进程句柄是否会随着SpamProcess的结束,局部变量pi的销毁而自动关闭???
    }

        HANDLE m_hProcess;
    };
    • 已移动 Sheng Jiang 蒋晟Moderator 2009年2月28日 0:21 Windows API问题 (从 Visual C++ 移动到 Windows Vista 开发相关讨论)
    • 已移动 孟宪会Moderator 2009年5月19日 9:42 ([Loc]From:Windows Vista 开发相关讨论)
    • 已移动 MagicDreamModerator 2009年5月19日 9:46 C++开发相关 ([Loc]From:Visual C++)
    2009年2月26日 15:11

答案

  • 复制句柄是为另一个进程用的。本进程内在关闭句柄之前句柄一直有效。
    通常创建句柄的函数的文档会告诉你何时需要关闭句柄。

    MSMVP VC++
    2009年2月28日 0:20
    版主