作者:
jyleef (龍蝦)
2015-03-06 18:41:04開發平台(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"");