Windows / redirect STDERR to see assert messages

Bastiaan Veelo Bastiaan at Veelo.net
Tue May 14 09:41:41 UTC 2019


On Sunday, 12 May 2019 at 13:39:15 UTC, Robert M. Münch wrote:
> When developing Windows GUI applications I use:
>
>      // detach from console and attach to a new one, works for 
> x86 and x86_64
>      FreeConsole();
>      AllocConsole();
>
>      freopen("CONIN$", "r", stdin);
>      freopen("CONOUT$", "w", stdout);
>      freopen("CONOUT$", "w", stderr);
>
> so that the GUI app opens a console for writeln() output etc. I 
> assumed this should work for assert() messages as well. But it 
> seems it doesn't. If an assert fails, I don't see any output. 
> Is assert using something else? What's wrong about this 
> approach?

Are you sure the last call to freopen doesn't return NULL? You 
are opening the same file twice and I'm not sure that works. Test 
with `stderr.writeln("test")`.

Bastiaan.


More information about the Digitalmars-d-learn mailing list