proposed solution for "#436 Output should be directed to the windows console"

Lubomir I. Ivanov neolit123 at gmail.com
Thu Mar 20 03:26:53 PDT 2014


On 20 March 2014 12:15, Robert Helling <helling at lmu.de> wrote:
>
> On 20.03.2014, at 10:39, Lubomir I. Ivanov <neolit123 at gmail.com> wrote:
>
> Lubomir,
>
>> well, technically, the fact that stdout and stderr go into the abyss
>> for GUI apps, doesn't mean we *can't* pipe them where we want to.
>> i simply didn't understand the need for it. i guess i can be useful to
>> gather debug information from users, if instructed to pass an extra
>> argument.
>>
>> 1) we add the -win32console command line argument that is a NOP on
>> other platforms
>> 2) users can add it when calling the exe from the terminal or from a
>> desktop shortcut
>> 3) it pipes our output to a dedicated terminal (created on the fly) or
>> to the starting terminal process
>>
>> a bit confused with the whole GSOC idea thing and if a student should
>> take this, but i can certainly write this one quickly...
>> around 30 LOC of a patch.
>
> my impression was that the suggested solution is not to add anything to the source but change the build process for Windows such that the option is set to keep the connection with the terminal for STDOUT and STDERR. I remember seeing a stack overflow page describing it. Alternatively the flag could be set in the resulting binary. But I haven’t used windows in a while. What we don’t want is to open a console window with every start (as a GUI program) of subsurface.
>

i use this ATM:
qmake "config += CONSOLE"

which basically makes subsurface a console application and it always
has a console (stderr/stdout are visible there) even if started from a
desktop shortcut.
so what we can do is create a separate += CONSOLE installer for
windows, but this is more work for dirk. this is the only solution
without source code changes that i can see.

there are no methods to create a console on demand in Qt to my knowledge...
that last solution that i proposed is a WINAPI one and the user can
create the stderr/stdout on demand via a command line argument.
and if the command line argument is missing no console will be visible
(default behavior).

lubomir
--


More information about the subsurface mailing list