The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: random832@fastmail.us (random832@fastmail.us)
Subject: [TUHS] why the leading under score added to function names?
Date: Sun, 26 Feb 2012 20:30:45 -0500	[thread overview]
Message-ID: <1330306245.13843.140661041668049@webmail.messagingengine.com> (raw)
In-Reply-To: <29D22528-0E74-4465-BA18-BF3DDE1BB674@ronnatalie.com>



On Sun, Feb 26, 2012, at 08:28, Ronald Natalie wrote:
> 
> WinMainCRTStartup isn't the replacement for main.

I never said it was. My point was that there is no "main" anywhere in a
program that starts with WinMain, whereas John Cowan claimed that a
"main" exists in such programs which does the things that
WinMainCRTStartup in fact does.

> main - for non-MFC console apps
> wmain - same thing but with wchar_t arguments (SOMETHING C/C++ standards
> hasn't ever addressed to my satisfaction).

I suspect this is partly because the unix world is a multibyte world,
and POSIX has "filenames don't have to be valid in any character set,
they're just bytes".

But Windows never had a satisfactory solution to multibyte vs wide in
pipes, either, anyway.

> WinMain - MFC main function

This existed long before MFC, I suspect.

> wWinMain - Ditto, with wchar_t
> 
> Actually the bulk of the CRT involves converting between the command line
> argument as a string and argc/argv (something UNIX does by the OS), and
> some gook necessary to support C++.

Well, not "by the OS" per se. More like, the OS only supports passing
argc/argv at any level, so the shell converts user-typed strings to
argv.

(A big gripe I have with the CRT is that its _spawn/_exec functions
don't quote strings containing spaces/etc so they can be round-tripped
by the CRT's argv initialization. And the argv code itself doesn't let
you have "wildcards in strings without quotes, literal stars in strings
with them", you have to choose between wildcards or not)

> The  fake UNIX environment (POSIX) (read/write/seek, etc...) actually is
> NOT initialized here, but when it is actually referenced.

mainCRTstartup does in fact call _ioinit() in the version I looked at. I
don't recall if WinMainCRTstartup does or not, it's not in front of me
now.
-- 
Random832




  reply	other threads:[~2012-02-27  1:30 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-22 19:17 arnold
2012-02-22 21:22 ` Dave Horsfall
2012-02-22 22:47   ` A. P. Garcia
2012-02-23  4:30   ` Greg 'groggy' Lehey
2012-02-25 18:45     ` Random832
2012-02-25 19:24       ` Steve Nickolas
2012-02-25 20:39       ` John Cowan
2012-02-25 22:15         ` Random832
2012-02-26 13:28           ` Ronald Natalie
2012-02-27  1:30             ` random832 [this message]
  -- strict thread matches above, loose matches on Subject: below --
2012-02-20 20:52 arnold
2012-02-20 23:21 ` Dave Horsfall
2012-02-21  0:34   ` Brantley Coile
2012-02-21  2:50     ` Warner Losh
2012-02-21  3:33       ` John Cowan
2012-02-21  3:41       ` Steve Nickolas
2012-02-21 18:18       ` ron

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1330306245.13843.140661041668049@webmail.messagingengine.com \
    --to=random832@fastmail.us \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).