Отображение вывода на вопрос консоли - PullRequest
0 голосов
/ 07 декабря 2010

Я работаю в приложении MFC, которое работает как в графическом режиме, так и пользователь может работать из командной строки. В режиме 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>

Пожалуйста, помогите мне решить проблему, Ниже приведен фрагмент кода

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 голосов
/ 23 февраля 2017

Возможно, это решит вашу проблему:

Перейдите в Проект> Свойства проекта> Компоновщик> Система и на правой панели установите параметр Подсистемы на Консоль (/ SUBSYSTEM: CONSOLE)

0 голосов
/ 07 декабря 2010

Используйте эту строку вместо:

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