2013-12-23 47 views
1

我想爲在單個進程中運行的兩個不同線程創建兩個不同的控制檯窗口。我知道每個進程只分配一個控制檯窗口。所以,即使我創建了多個線程,所有線程都使用與STDOUT相同的控制檯窗口。我現在應該怎麼做?我需要爲兩個不同的功能創建兩個不同的過程嗎?如果是這樣,我怎樣才能從另一個進程訪問內存?針對不同線程的不同控制檯窗口

+1

檢查此:http://cboard.cprogramming.com/windows-programming/111631-one-process-two-console-windows.html –

+0

爲什麼你需要多個控制檯?想象一下,你需要多個鍵盤,鼠標和顯示器。這樣做的目的是什麼? – Dialecticus

回答

2

AllocConsole function狀態「一個進程可以與只有一個控制檯相關聯,因此AllocConsole函數失敗如果調用進程已經有一個控制檯。」一個進程可以附加到一個控制檯上。 你的願望只能通過多個過程完成。用於此目的的進程間通信可以通過使用pipes(參見「How to spawn console processes with redirected standard handles」作爲起始者)來最好地實現。這樣你就可以打開一些進程,每個進程都有一個控制檯,並且「管道」來自它們的I/O。