Windows startup docs are out of date
Jacob Carlborg
doob at me.com
Wed Jan 8 06:11:50 PST 2014
On 2014-01-08 14:28, Adam D. Ruppe wrote:
> eh they're really in the same boat. Declaring your own WinMain is kinda
> like declaring your own _start symbol on linux. It skips the runtime's
> main() function and you're more on your own.
No, it's not.
For C:
Implementing WinMain does not bypass the runtime[1]. Implementing _start
on Linux would most likely bypass the runtime. Implementing WinMain is
more like implementing main() on Posix.
For D:
Implementing WinMain or main() as extern (C) will bypass the D runtime,
it still won't bypass the C runtime.
I would expect the boot process be something like this:
Linux:
_start
C main
D main
Windows:
CRT (C runtime library)
C main or WinMain
D main
> Both the C and the D runtimes implement their own entry point which
> calls into your program's main and you can use these consistently across
> platforms.
WinMain is not the entry point. The C runtime library will call it just
like it will call C main.
[1]
http://msdn.microsoft.com/en-us/library/windows/desktop/ff381406%28v=vs.85%29.aspx
--
/Jacob Carlborg
More information about the Digitalmars-d
mailing list