AllocConsole() Not posting
-
wrote on 1 Jun 2017, 00:56 last edited by Denis Dolzhenko 6 Jan 2017, 00:59
So the situation is that my GUI posts to the allocated console perfectly when I open the application within the QT creator application, but when I try to launch the application as a separate .exe file in its own folder the console pops up but nothing gets posted.
That's how I initialize the console (right after ui->setupui(this);) :
FreeConsole(); // create a separate new console window AllocConsole(); // attach the new console to this application's process AttachConsole(GetCurrentProcessId()); freopen("CON", "w", stdout); freopen("CON", "w", stderr); freopen("CON", "r", stdin);
That's how i try posting to the console ( all of those ways work in QT creator and none of those work in the separate app)
puts("puts"); std::cout << "std::cout" << std::endl; printf("printf\n",time.wHour,time.wMinute,time.wSecond);
-
wrote on 1 Jun 2017, 01:02 last edited byThis post is deleted!
-
wrote on 1 Jun 2017, 01:12 last edited by Denis Dolzhenko 6 Jan 2017, 02:24
So the console starts working randomly sometimes.
I think the problem is attaching the console to the app. I think so because when the console works right, I can close the console window and it will close the GUI automatically. But in situations when it does not post, I close the console and the GUI stays open.
-
So the console starts working randomly sometimes.
I think the problem is attaching the console to the app. I think so because when the console works right, I can close the console window and it will close the GUI automatically. But in situations when it does not post, I close the console and the GUI stays open.
@Denis-Dolzhenko If you want to start your application outside of QtCreator then you need to deploy your app properly first. That means you need to crate a directory with your executable and all libs and Qt plug-ins which are used by your application.
See http://doc.qt.io/qt-5/deployment.html -
wrote on 1 Jun 2017, 11:58 last edited by
-
Hi and welcome to devnet,
The upload feature is currently broken, please follow this guide.
-
Hi and welcome to devnet,
The upload feature is currently broken, please follow this guide.
wrote on 2 Jun 2017, 16:01 last edited by Denis Dolzhenko 6 Feb 2017, 16:01@SGaist Thanks, but I think that's not the problem, I figured something else out.
So my assumption ( found it on https://stackoverflow.com/questions/432832/what-is-the-different-between-api-functions-allocconsole-and-attachconsole-1) is that console does not always attach if I launch the executable from the explorer.
"When run from a command prompt, two message boxes containing a 1 are displayed, meaning both calls succeeded. When run from Start -> Run, the first box contains 1 and the second contains 0, meaning that only the first call succeeded. The second one fails because explorer.exe (which is the parent of a process launched from Start -> Run) doesn't have a console."
I tested it and it works 100% of the times when I launch the app from the command prompt.
Is there a way I can make this work without using the command prompt?
-
Out of curiosity, why do you need that command prompt for ?
1/8