在控制台上显示输出问题

时间:2010-12-07 06:10:07

标签: c++ mfc console

我在MFC应用程序中工作,该应用程序在GUI模式下运行,用户可以从命令提示符运行。在GUI模式下我工作正常。但是在命令提示符模式下,我使用printf()来显示错误,但命令提示符中没有任何内容。为了解决这个问题,我得到了AttachConsole(ATTACH_PARENT_PROCESS)函数来向控制台显示内容。但输出没有消毒,即如果我在命令行中运行应用程序,输出将看起来像下面

G:\Bin\conTest\Debug>conTest.exe

G:\Bin\conTest\Debug>This is test comment
Press any key to continue . . .

但我希望输出像下面那样

G:\Bin\conTest\Debug>conTest.exe

This is test comment
Press any key to continue . . .

G:\Bin\conTest\Debug>

请帮我解决问题, Bellow是代码片段

DWORD written;

if (AttachConsole(ATTACH_PARENT_PROCESS))
{
out = GetStdHandle (STD_OUTPUT_HANDLE);
}

CString dump = "This is test comment\n";
WriteConsole (out, (LPCTSTR) dump, dump.GetLength(), &written, 0);

system("pause"); 
FreeConsole();

2 个答案:

答案 0 :(得分:0)

请改用此字符串:

CString dump = "\n\nThis is test comment\n";

答案 1 :(得分:0)

也许这可以解决您的问题:

转到项目>项目属性>链接器>系统,在右侧窗格中,将子系统选项设置为控制台(/ SUBSYSTEM:CONSOLE)