On Wednesday, 29 April 2020 at 10:26:40 UTC, Sam E. wrote:
Really, there's no reason at all to use WinMain. Just create a standard main function. Then you don't need to worry about manually initializing the runtime and you'll have a console window by default. You can always turn it off in anything you want to ship without the console by adding the appropriate dflags to your dub file:

-L/SUBSYSTEM:WINDOWS -L/ENTRY:mainCRTStartup

Conversely, you can get the console window in a WinMain app with:

-L/SUBSYSTEM:CONSOLE -L/ENTRY:WinMainCRTStartup

Though, again, there's really no reason to use WinMain.

I took the WinMain from https://wiki.dlang.org/D_for_Win32, should that documentation be updated to use a normal main function instead? Also the details regarding linker flags may be a good addition to that wiki page.

Just to confirm what Mike was saying: removing the WinMain completely and using a normal main function with calls to Win32 functions builds and works perfectly fine, that's a way nicer approach.

Reply via email to