Я также поиграл с этим, обнаружив, что перенаправление вывода работает, но я никогда не видел вывод в окно консоли, которое присутствует для каждого приложения Windows. Пока это мое решение, пока я не найду замену Qt для ShowWindow и GetConsoleWindow.
Запустите это из командной строки без параметров - получите окно. Запустите из командной строки с параметрами (например, cmd aaa bbb ccc) - вы получите текстовый вывод в окне командной строки - так же, как вы ожидаете от любого консольного приложения Windows.
Пожалуйста, извините за неудачный пример - он представляет около 30 минут работы.
#include "mainwindow.h"
#include <QTextStream>
#include <QCoreApplication>
#include <QApplication>
#include <QWidget>
#include <windows.h>
QT_USE_NAMESPACE
int main(int argc, char *argv[])
{
if (argc > 1) {
// User has specified command-line arguments
QCoreApplication a(argc, argv);
QTextStream out(stdout);
int i;
ShowWindow (GetConsoleWindow(),SW_NORMAL);
for (i=1; i<argc; i++)
out << i << ':' << argv [i] << endl;
out << endl << "Hello, World" << endl;
out << "Application Directory Path:" << a.applicationDirPath() << endl;
out << "Application File Path:" << a.applicationFilePath() << endl;
MessageBox (0,(LPCWSTR)"Continue?",(LPCWSTR)"Silly Question",MB_YESNO);
return 0;
} else {
QApplication a(argc, argv);
MainWindow w;
w.setWindowTitle("Simple example");
w.show();
return a.exec();
}
}