开发平台(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"");