[問題] 用 cmd line 執行 MFC 後的訊息顯示

看板C_and_CPP (C/C++)作者 (龍蝦)時間11年前 (2015/03/06 18:41), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VS2012 / Windows 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) MFC 問題(Question): 目前我有寫了一個 MFC 的程式,並經由 cmd line 呼叫 而且在程式執行失敗時,可以顯示訊息到 cmd 當下的視窗中 但是顯示的訊息位置是在下一個命令列的最後面… 我希望是先顯示完訊息後再出現命令列 餵入的資料(Input): 於 cmd 底下執行 C:\>MFC.exe 預期的正確結果(Expected Output): C:\>MFC.exe 程式執行失敗 <-在 C:\> 之前顯示 C:\> 錯誤結果(Wrong Output): C:\>MFC.exe C:\>程式執行失敗 <-在 C:\> 之後才顯示 0rz 程式碼(Code):(請善用置底文網頁, 記得排版) 下一項說明 補充說明(Supplement): cmd line 執行 MFC 的部分我是使用下面的方法來接收參數 CString strCommandLine(GetCommandLine()); CommandLineToArgvW(CString(GetCommandLine()), &nArgCount); 讓訊息顯示在原 cmd 視窗上有試過兩種方法 第一種是 AttachConsole(ATTACH_PARENT_PROCESS); //直接取得當下 process _cprintf("程式執行失敗"); 另一種方法是下面這個網址的做法 http://blog.csdn.net/panchunrong/article/details/8930603 然後配合 WriteConsoleA(); 或 _cprintf("程式執行失敗"); 來顯示訊息 上述方法都可以將訊息顯示在當下的 cmd 視窗 可是都沒辦法達成我想要的顯示方式… 有想過把 C:\> 覆蓋掉(如下) _cwprintf(L"\r程式執行失敗%68s\n", L""); -------------顯示狀況--------- C:\>MFC.exe 程式執行失敗 ------------------------------ 可是要再多按一次 Enter 才能再顯示出 C:\> 如果有方法可以不需要多按一次 Enter 就能顯示出 C:\> 的話也可以 也有想過再加上 system("CD"); 可是會變成 ------------------------------ C:\>MFC.exe 程式執行失敗 C:\> _ <- 多換了一行 ------------------------------ 還是其實我想要的顯示方式是沒辦法做到的? 或要用較複雜的方式才能實現呢? 希望各位版友幫忙解惑了,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.70.194.104 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1425638470.A.822.html
文章代碼(AID): #1K-OH6WY (C_and_CPP)
文章代碼(AID): #1K-OH6WY (C_and_CPP)