gpt4 book ai didi

windows - createProcess 函数的 DETACH_PROCESS 和 CREATE_NO_WINDOW 进程创建标志有什么区别

转载 作者:可可西里 更新时间:2023-11-01 12:38:00 26 4
gpt4 key购买 nike

我一直在努力理解这两个进程创建标志之间的区别。 msdn documentation不清楚区别。

  • CREATE_NO_WINDOW 是否会导致进程有一个控制台(已初始化标准输入/输出流)而不显示窗口,而 DETACH_PROCESS 根本没有控制台?
  • 对子过程的影响是什么?
  • 描述在(父有控制台,父没有控制台)X(子可执行文件需要控制台(主),子可执行文件不需要控制台(WinMain))的每个组合时发生的情况的行为矩阵是什么? ?

最佳答案

区别在于启动的进程可以做什么。在这两种情况下,它都没有控制台。但是使用 CREATE_NO_WINDOW 选项,它可以调用 AttachConsole(ATTACH_PARENT_PROCESS) 并访问父控制台窗口(如果可用)。当您指定 DETACH_PROCESS 时,这将无法正常工作。唯一的选择是启动进程使用 AllocConsole() 创建自己的控制台。

或者换句话说,通过使用 DETACH_PROCESS,您可以确保已启动的进程永远无法在您自己的控制台中聊天。

关于windows - createProcess 函数的 DETACH_PROCESS 和 CREATE_NO_WINDOW 进程创建标志有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6371149/

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