В обычном (читаемом консоли) приложении C / C ++ у вас будет точка входа в программу со следующим объявлением:
int main( int argc, char* argv[] );
Здесь argc
- это количество «строк» командной строки, включая саму команду, а argv
- массив этих строк. Таким образом, в вашем примере это будет argc
из 5 (с добавлением имени программы), а argv[0]
- это название программы, argv[1]
- это "-dev"
и т. Д.
Теперь под Windows приложение с графическим интерфейсом отличается - точка входа объявлена как:
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
);
Таким образом, вся командная строка (на этот раз за исключением имени приложения) указана lpCmdLine
, так что это будет одна строка, как вы указали выше. Хотя есть вспомогательные функции для разделения этой строки. Взгляните на эти две записи в MSDN: