我一直在试图理解这两个进程创build标志之间的区别。 msdn文档不清楚这个区别。
不同之处在于开始的过程可以做什么。 在这两种情况下,它不会有一个控制台。 但是使用CREATE_NO_WINDOW选项,它可以调用AttachConsole(ATTACH_PARENT_PROCESS)并访问父级控制台窗口(如果可用)。 当你指定DETACH_PROCESS时,这显然不起作用。 那么唯一的选择是启动进程使用AllocConsole()创建自己的控制台。
或者换句话说,你可以确定启动的进程永远不能通过使用DETACH_PROCESS来进入你自己的控制台。