I guess that's the right job for boost::tokenizer...
The problem is, that a command line seperator for the tokenizer is not provided by boost, so you rely on external code. If I use the tokenizer, I have to parse the arguments, copy them in a vector and then pass it to your module.
Frankly, I've missed the WinMain case, and not sure what to do. The problem is that single string might erase important information --- what happens if you have command line argument with embedded space.
Embedded spaces should be placed in quotation marks which should be removed by the tokenizer. Arguments could be seperated by one ore more space.
Maybe, using __argv/__argc, as suggested by Nuno Lucas is just better.
This is what I will use now, but what I don't like on this solution is that it is compiler dependand. CL