|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Feb 2010
Messaggi: 57
|
[C]avere nome eseguibile
ho un problema con un programma per win che sto scrivedo...ho necessita di avere il nome dell' eseguibile, ho bisogno di una funzione simile a GetModuleFileName () ma senza percorso completo solo il nome del programma
qualcuno puo aiutarmi ?? Ultima modifica di andros94 : 24-04-2012 alle 16:42. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Codice:
int main(int argn, char ** argp){
printf("%s\n", argp[0]);
}
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jul 2009
Città: Milano
Messaggi: 270
|
Ho pensato che potevi usare __FILE__, che funziona anche con file di libreria, ma vuoi il nome del file compilato. :P
__________________
AMD PII x4 955 BE | Sapphire HD4850 Vapor-X 1 GB | Samsung SpinPoint F1 500GB | Samsung EcoGreen F4 2TB Gigabyte GA-MA790FXT-UD5P | Fractal Design Define R3 USB3.0 Titanium Grey | CORSAIR 650W CMPSU-650TX Noctua U12P SE2 | 2 x 2GB Kingston 1333 MHz | Samsung SyncMaster P2450 | Samsung SyncMaster T200 Ultima modifica di __ZERO_UNO__ : 24-04-2012 alle 21:10. |
|
|
|
|
|
#4 | |
|
Member
Iscritto dal: Feb 2010
Messaggi: 57
|
Quote:
|
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Feb 2010
Messaggi: 57
|
a me serve SOLO il nome dell' eseguibile, altrimenti avrei usato la funzione GetModuleFileName()
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
|
Quote:
Codice:
char *name = strrev(argv[0]);
*(strchr(name, '\\')) = 0;
strrev(name);
printf("%s\n", name);
|
|
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Feb 2010
Messaggi: 57
|
grazie per il codice...funziona, ma non ho capito cosa fa essattamente questa riga
Codice:
*(strchr(name, '\\')) = 0; |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
|
Cerca il primo carattere \ nella stringa e lo sostituisce con un NUL
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Anche una cosa del genere altrimenti
Codice:
char * tmp = argp[0] + (strlen(argp[0]) - 1); while(*(tmp - 1) != '/')*tmp--; |
|
|
|
|
|
#11 |
|
Junior Member
Iscritto dal: Sep 2001
Messaggi: 7
|
Puoi usare la funzione basename (presente in linux e mingw32) oppure la _split (presente solo su windows) http://msdn.microsoft.com/en-us/library/e737s6tf.aspx
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:43.




















