为什么这是samr HANDLES(CPP HANDLES。)的相同地址?

时间:2017-01-05 16:41:05

标签: c++

我做了接下来的三个例子:

void main()
{
    HANDLE A = ShellExecute(NULL, "open", R"(C:\Users\Gustabo\Desktop\noticed_files.txt)", "", "", SW_SHOW);
    HANDLE B = ShellExecute(NULL, "open", R"(C:\Users\Gustabo\Desktop\clientserver.txt)", "", "", SW_SHOW);
    HANDLE C = ShellExecute(NULL, "open", R"(C:\Users\Gustabo\Desktop\noticed_files.txt)", "", "", SW_SHOW);
    std::cout << A << std::endl;
    std::cout << B << std::endl;
    std::cout << C << std::endl;
    system("pause");
    ExitProcess(0);
}

这是三种不同的手柄(同时)。 每个HANDLE应该响应另一个进程(但它没有。)。

输出:

  

0000002A

     

0000002A

     

0000002A

为什么这三个手柄没有另一个地址?

1 个答案:

答案 0 :(得分:0)

ShellExecute的返回值不是句柄。它只是函数调用成功/失败的指示:实际上如果它大于32,则函数调用成功。