[Issue 19275] New: st.process: redirecting output in a non-console application fails
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sat Sep 29 13:37:46 UTC 2018
https://issues.dlang.org/show_bug.cgi?id=19275
Issue ID: 19275
Summary: st.process: redirecting output in a non-console
application fails
Product: D
Version: D2
Hardware: x86_64
OS: Windows
Status: NEW
Severity: normal
Priority: P1
Component: phobos
Assignee: nobody at puremagic.com
Reporter: r.sagitario at gmx.de
When linking a Windows application with the Microsoft runtime 12 or earlier,
running a process and redirecting its output fails:
import std.process;
import core.sys.windows.windows;
extern(C) int main(string[] args)
{
try
{
auto res = execute(["dmd.exe", "--version"], null,
Config.suppressConsole);
MessageBoxA(null, res.output.ptr, "OK", MB_OK);
}
catch(Throwable e)
{
MessageBoxA(null, e.msg.ptr, "EXCEPTION", MB_OK);
}
return 0;
}
alias extern(C) int function(string[] args) MainFunc;
extern (C) int _d_run_main(int argc, char **argv, MainFunc mainFunc);
extern (Windows)
int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int
nCmdShow)
{
return _d_run_main(0, null, &main); // arguments unused, retrieved via
CommandLineToArgvW
}
causes an exception when built with `dmd -m64 redir.d -L/Subsystem:windows
user32.lib` against VS2013. Works with -m32 or VS2015 and VS2017.
--
More information about the Digitalmars-d-bugs
mailing list