我一直在試圖理解這兩個進程創建標誌之間的區別。 msdn documentation不清楚這個區別。用於createProcess函數的DETACH_PROCESS和CREATE_NO_WINDOW進程創建標誌有什麼區別
- 不CREATE_NO_WINDOW使處理有一個控制檯(標準輸入/輸出流初始化)而不顯示的窗口,而DETACH_PROCESS沒有控制檯呢?
- 這對孩子的孩子過程有什麼影響?
- 什麼是行爲矩陣,描述每個組合(父母有控制檯,父母沒有控制檯)會發生什麼X(子可執行文件需要控制檯(主),子可執行文件不需要控制檯(WinMain))。 ?
你是什麼意思的「每個組合」? MSDN明確指出:「*如果應用程序不是控制檯應用程序,或者它與CREATE_NEW_CONSOLE或DETACHED_PROCESS。*」用於CREATE_NO_WINDOW',則忽略此標誌。所以在某種意義上它們是相互排斥的。 – 0xC0000022L 2011-06-16 17:13:17
我是指作爲控制檯或非控制檯可執行文件的孩子和父母的組合。如果父節點是非控制檯應用程序,並且我使用DETACH_PROCESS標誌從它啓動了一個控制檯應用程序,那麼如果需要控制檯,該子節點將會出錯。 – Manny 2011-06-17 13:11:29
完全依賴於C運行時的實現。如果我沒有記錯,MSVCRT在這種情況下不會造成問題。其他運行時可能。 – 0xC0000022L 2011-06-17 20:59:17