|
Boost Users : |
From: Ben Hutchings (ben.hutchings_at_[hidden])
Date: 2003-04-17 12:15:33
E. Scott Larsen wrote:
> Just FYI to this thread in general. It's been a while since I've
messed
> with WinMain and command lines, but if my memory serves me right (it
was
> at a different place, so I don't have the code here), there's some
> additional whacky issues here. WinMain recieves the first arguments
> differently depending on how it is run:
> *) from MSVC debugger
> *) from a commandline
> *) by clicking on an shortcut icon
> *) by clicking in an explorer window
I find this hard to believe, as WinMain is just given a pointer into the
command line returned by GetCommandLine(), incremented past the program
name and any following space.
> don't remember which is which, but one gives just the executable name,
> one gives the full path to the executable (seems like there's two
> variations on this, like one is quoted and one is not, don't remember
> the details), and it seems like there's one that doesn't give the
> executable at all.
I can imagine there's some variation in program name; it's normal for
programs to be started with short names rather than their full
filenames. The quoting is weird though; that should be removed before
you see it.
> Also, I _distinctly_ remember something very whacky when I used
unicode,
> I don't remember the details, but the commandline arguments were a
> significant pain for a program built with unicode support using the
> unicode windows entry function. That still tastes bad in my mouth.
According to the docs, this ought to work:
wchar_t ** argv;
int argc;
argv = CommandLineToArgvW(GetCommandLineW(), &argc);
but I've never tried it; maybe it doesn't.
If you were using WinCE then I feel your pain and hope you've recovered.
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net