Originariamente inviato da ramy89
E per il resto il mio argc è sempre restato fermo a 1,mi sa che per farlo cambiare si deve usare una funzione come CreateProcess in windows.h,ma sinceramente odio questa libreria perchè secondo me si può fare tutto meglio in python,che purtroppo all' università non ho ancora studiato.
Non cambia assolutamente niente in ambiente windows se lanci l'applicazione con doppio click, collegamento, da console, CreateProcess(), ShellExecute...blablabla
Quello che importa è che esistono più metodi per lanciare l'applicazione (diverse combinazioni path, parametri), indipendente dalla API utilizzata dato che in realtà a livello Kernel il metodo per lanciare processi è SEMPRE quello.

Per esempio se scrivi sul cmd notepad.exe ti apre il notepad, con argv[0] = "C:\system32\notepad.exe" (oppure "notepad.exe" dipende da alcuni fattori)
Se apri Nuovo Documento Di testo.txt notepad verrà aperto con argc = 2, con argv[1] = al percorso o nome del file da aprire.

Tanto per darti un idea delle possibili combinazioni di argv...in ambiente windows intendo, guarda questo estratto dalla documentazione di CreateProcess()

c:\program.exe files\sub dir\program name
c:\program files\sub.exe dir\program name
c:\program files\sub dir\program.exe name
c:\program files\sub dir\program name.exe

quando tu avvi un eseguibile, windows prova l seguenti combinazioni, e bisogna considerare anche i percorsi contenuti nella variabili d'ambiente...quindi fa conto te!