2012-05-24 160 views
0

我有一個Qt項目。如果我使用Qt Creator開始我的應用程序,我從來沒有見過任何控制檯窗口(但是exe會在任務管理器中看到)。Qt隱藏控制檯窗口停止寫日誌文件

但是,如果我直接運行應用程序的exe,控制檯窗口彈出和關閉也。

我通過從project.pro文件中刪除CONFIG += console來隱藏控制檯窗口。但是這改變了影響qDebug()日誌。即沒有任何東西被添加到日誌文件(okb文件)。

發展environent的:Qt 4.7.3/Windows的

+0

什麼是「okb」文件,以及如何將qDebug()輸出到文件中? –

回答

1

當沒有控制檯窗口,所有的調試輸出使用OutputDebugString發送到debugger。即你可以從調試器(visual studio express - 使用調試器的「輸出」窗口)讀取它,但是不能通過運行諸如app > 1.txt(因爲沒有控制檯的應用程序在技術上沒有標準輸出)而將它重定向到文件。

或者,您可以使用qInstallMsgHandler安裝用於調試消息的消息處理程序,然後根據需要編寫自己的日誌文件。

+0

我試過實現qInstallMsgHandler,但它的工作只有當我啓用控制檯窗口。 – JChan

+0

@JChan:「但它的工作只有當」這僅僅意味着你已經實現它不正確。即使您使用qInstallMsgHandler,也不能在非控制檯窗口應用程序中簡單地使用std :: cout或printf。打開日誌文件,並從消息處理程序寫入該日誌文件。 – SigTerm

+0

執行錯誤,其工作感謝.. – JChan