Thread overview
How to launch a Windows compiled exe without showing a console?
Jan 11, 2014
Gary Willoughby
Jan 11, 2014
Adam D. Ruppe
Jan 11, 2014
nazriel
Jan 11, 2014
Gary Willoughby
January 11, 2014
How to launch a Windows compiled exe without showing a console?

I've tried the following two ways and when i execute the resulting *.exe file a console is shown alongside the dialog box. How can i suppress the console?

import std.string;
import core.sys.windows.windows;

void main(string[] args)
{
	MessageBoxA(null, "Hello".toStringz(), "Error", MB_OK | MB_ICONEXCLAMATION);
}

and

import std.string;
import core.runtime;
import core.sys.windows.windows;

extern (Windows) int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	Runtime.initialize();

	MessageBoxA(null, "Hello".toStringz(), "Error", MB_OK | MB_ICONEXCLAMATION);

	Runtime.terminate();
	return 0;
}

Compiler flags: dmd -release source.d
January 11, 2014
On Saturday, 11 January 2014 at 15:13:45 UTC, Gary Willoughby wrote:
> box. How can i suppress the console?

Add -L/subsystem:windows to the dmd command line, that should do it.
January 11, 2014
On Saturday, 11 January 2014 at 15:13:45 UTC, Gary Willoughby wrote:
> How to launch a Windows compiled exe without showing a console?
>
> I've tried the following two ways and when i execute the resulting *.exe file a console is shown alongside the dialog box. How can i suppress the console?
>
> import std.string;
> import core.sys.windows.windows;
>
> void main(string[] args)
> {
> 	MessageBoxA(null, "Hello".toStringz(), "Error", MB_OK | MB_ICONEXCLAMATION);
> }
>
> and
>
> import std.string;
> import core.runtime;
> import core.sys.windows.windows;
>
> extern (Windows) int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
> {
> 	Runtime.initialize();
>
> 	MessageBoxA(null, "Hello".toStringz(), "Error", MB_OK | MB_ICONEXCLAMATION);
>
> 	Runtime.terminate();
> 	return 0;
> }
>
> Compiler flags: dmd -release source.d

Tell the linker that application is PE GUI
IIRC it was -L/subsystem:windows  ?
January 11, 2014
Thanks all.