console output in dll doesn't work
Trass3r
un at known.com
Wed Mar 31 10:57:51 PDT 2010
> What was the fix? The example in samples/d/mydll compiles fine and looks
> very much the same.
>
Note that I'm talking about D2.
1. The path in build.bat is incorrect: is ..\..\..\bin\dmd instead of
..\..\..\windows\bin\dmd
2. printf isn't defined by default anymore.
3. The gc code etc in DllMain is for D1 I guess. I used code from
http://www.digitalmars.com/d/2.0/dll.html instead.
4. HINSTANCE g_hInst; wasn't (__g)shared
> In contrast to printf the std.stdio.write functions seem to buffer the
> output. When the DLL is unloaded, console output is already closed by
> the application.
>
> Two possible solutions:
> 1. call stdout.flush() after writing
doesn't fix it.
> 2. set std.c.stdio._fcloseallp = null; before terminating the exe, but
> expect scrumbled output from the DLL and the exe
fixes it. need to find out why.
More information about the Digitalmars-d
mailing list