Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - argomenti del programma
Forum - C/C++ - argomenti del programma

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
ciao raga...

qualcuno di voi sa postarmi un esempio pratico di una applicazione WIN32 che usa gli argomenti?

cioè io scrivo "applicazione.exe -a" e appare un messagebox con scritto ciao, e se scrivo "applicazione.exe -b" e appare un messagebox con scritto salve...
non so chiedo troppo ma se potete darmi il codice sorgente....
grazie..
conto su di voi....;)

PM Quote
Avatar
Rand (Ex-Member)
Pro


Messaggi: 163
Iscritto: 17/05/2005

Segnala al moderatore
Postato alle 14:40
Sabato, 16/09/2006
eccoti un esempio

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. int main(int argc, char **argv) {
  6. //argv[0] => argomento: nome del programma
  7. //argv[1] => argomento: opzione o "-a" o "-b"
  8.  
  9. //controllo i parametri passati da linea di comando
  10. if(argc<2 || strcmp(argv[1],"-a"!=0 || strcmp(argv[1],"-b"!=0) {
  11.    //se sono meno di quelli richiesti o errati: errore
  12.    cout<<"ERRORE: argomenti non validi."<<endl;
  13.    cout<<"Sintassi corretta: nome_prg.exe [opzione -a; -b]\n"<<endl;
  14.    return -1;
  15. }
  16. //se invece è tutto corretto controllo di quale parametro si tratta
  17. if(strcmp(argv[1],"-a")==0) {
  18.      //stampo il msgbox 1
  19.      //cout<<"opzione -a!"<<endl;
  20. }
  21. if(strcmp(argv[1],"-b")==0) {
  22.      //stampo il msgbox 2
  23.      //cout<<"opzione -b!"<<endl;
  24. }
  25.  
  26. system("pause");
  27. return 0;
  28. }



se hai ancora problemi, o vuoi altri chiarimenti, chiedi pure! :k:


Ero solito portare una pallottola nel taschino, all'altezza del cuore.
Un giorno un tizio mi tirò addosso una Bibbia, ma la pallottola mi salvò la vita.

(Woody Allen)
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 12:09
Domenica, 17/09/2006
il compiler mi da questi errori... dove sbaglio?

7 - cannot convert `bool' to `const char*' for argument `2' to `int strcmp(const char*, const char*)'

20 - expected `)' before ';' token

scusa ma mi puoi spegare brevemente la funzione strcmp()?

abbi pazienza... e grazie!


Ultima modifica effettuata da il 17/09/2006 alle 12:13
PM Quote
Avatar
Rand (Ex-Member)
Pro


Messaggi: 163
Iscritto: 17/05/2005

Segnala al moderatore
Postato alle 16:37
Domenica, 17/09/2006
manka 1 parentesi dopo "strcmp(argv[1],"-a"!=0"

cmq la strcmp praticamente confronta 2 stringhe (il prototipo è: strcmp(char *str1, char*str2) e restituisce 0 se le stringhe sono uguali, altrimenti un valore diverso (m sembra 1, ma tu ttesta su zero che va lo stesso eheh)


Ero solito portare una pallottola nel taschino, all'altezza del cuore.
Un giorno un tizio mi tirò addosso una Bibbia, ma la pallottola mi salvò la vita.

(Woody Allen)
PM Quote
Avatar
Rand (Ex-Member)
Pro


Messaggi: 163
Iscritto: 17/05/2005

Segnala al moderatore
Postato alle 16:39
Domenica, 17/09/2006
ti ho corretto il listato (avevo sbagliato la posizione delle parentesi XD)

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. int main(int argc, char **argv) {
  6. //argv[0] => argomento: nome del programma
  7. //argv[1] => argomento: opzione o "-a" o "-b"
  8.  
  9. //controllo i parametri passati da linea di comando
  10. if(argc<2 || strcmp(argv[1],"-a")!=0 || strcmp(argv[1],"-b")!=0) {
  11. //se sono meno di quelli richiesti o errati: errore
  12. cout<<"ERRORE: argomenti non validi."<<endl;
  13. cout<<"Sintassi corretta: nome_prg.exe [opzione -a; -b]\n"<<endl;
  14. return -1;
  15. }
  16. //se invece è tutto corretto controllo di quale parametro si tratta
  17. if(strcmp(argv[1],"-a")==0) {
  18. //stampo il msgbox 1
  19. //cout<<"opzione -a!"<<endl;
  20. }
  21. if(strcmp(argv[1],"-b")==0) {
  22. //stampo il msgbox 2
  23. //cout<<"opzione -b!"<<endl;
  24. }
  25.  
  26. system("pause");
  27. return 0;
  28. }



:k:


Ero solito portare una pallottola nel taschino, all'altezza del cuore.
Un giorno un tizio mi tirò addosso una Bibbia, ma la pallottola mi salvò la vita.

(Woody Allen)
PM Quote
Avatar
### (Normal User)
Rookie


Messaggi: 44
Iscritto: 07/09/2006

Segnala al moderatore
Postato alle 19:54
Martedì, 26/09/2006
Testo quotato

Postato originariamente da SystemCrash:

ciao raga...

qualcuno di voi sa postarmi un esempio pratico di una applicazione WIN32 che usa gli argomenti?

cioè io scrivo "applicazione.exe -a" e appare un messagebox con scritto ciao, e se scrivo "applicazione.exe -b" e appare un messagebox con scritto salve...
non so chiedo troppo ma se potete darmi il codice sorgente....
grazie..
conto su di voi....;)



Pensavo intendessi una applicazione Win32, ma vedo che ti è stato dato un esempio di applicazione console... probabilmente faccio confusione, cmq per chi fosse interessato
nlle applicazioni Win32 si prende l'intera riga di comando:

Codice sorgente - presumibilmente C/C++

  1. int WINAPI
  2. WinMain(HINSTANCE hInst,  HINSTANCE hPrevInst,
  3.         LPSTR lpCmdLine, int nCmdShow)
  4. {
  5.  
  6.     return 0;
  7. }



che corrisponde all'argomento lpCmdLine, i singoli argomenti si ottengono da quest'ultima facendo attenzione al fatto che gli spazi vengono considerati tali.


"Mouse not found. Click mouse button to continue" (Win95).
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6109
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 23:33
Martedì, 26/09/2006
Codice sorgente - presumibilmente C/C++

  1. int WINAPI
  2. WinMain(HINSTANCE hInst, HINSTANCE hPrevInst,
  3. LPSTR lpCmdLine, int nCmdShow)
  4. {
  5.  
  6. [b]MessageBox(0,lpCmdLine,"",0);[/b]
  7.  
  8. return 0;
  9. }



Più semplice di così ;)


Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
PM Quote