argv and argc are concepts from the C runtime, not the Windows OS. The actual entry point to your program is to a routine that calls the initialization routines of the C library, then calls winMain.
Those initialization routines get the command line via Win32 call, allocates memory for argv, and parses the command line. Windows itself has no requirement that an application support argv and argc, and in fact programs in other languages (VB etc) don't have any such concept. Cygwin, when launching an application, just needs to make sure the CreateProcess call has the command line passed to it. Everything else is handled by the the receiving program (via C runtime, if a C program). -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/