Меня давно удивляло, что функция для разбора командной строки и приведения ее к C-образному виду (argc/argv) присутствует в Win32 API только в Unicode варианте. Называется она CommandLineToArgvW().
Когда мне довелось писать программу, принимающую параметры из коммандной строки для Windows NT Native subsystem, пришлось написать...
На
http://alter.org.ua/docs/win/args/
выложен код CommandLineToArgvW(). Для получения CommandLineToArgvA() достаточно заменить:
1. WCHAR -> CHAR
2. wcslen -> strlen
3. CommandLineToArgvW -> CommandLineToArgvA
A_>>Когда мне довелось писать программу, принимающую параметры из коммандной строки для Windows NT Native subsystem, пришлось написать...
MS>А может имело смысл переписать программу, которая использует argc,argv?
MS>И парсить целую строку?
MS>Я так и делал когда-то...
В принципе, эту программулину я портировал из Win32, а она в свою очередь была портирована из Linux'a и использовала библиотеку getopt для разбора ключей. Оказалось проще CommandLineToArgvW() реализовать

Да и после написания полноценного разборщика, который бы и кавычки правильно понимал, до разбиения на argc,argv пол шага остается.
Зато теперь легко писать тулзы, работающие в NT с Unicode filenames, а в 9x — с Ansi. Код один, а компилируется по-разному.