Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Directory e nome del file eseguibile
Forum - C/C++ - Directory e nome del file eseguibile

Avatar
Al3k (Normal User)
Newbie


Messaggi: 8
Iscritto: 16/10/2006

Segnala al moderatore
Postato alle 16:15
Sabato, 21/10/2006
ho trovato un esempio che utlizza <direct.h>

e quindi:

void GetCurrentPath(char* buffer){
    getcwd(buffer, _MAX_PATH);
}

il problema è che non mi trova direct.h

ah e poi oltre alla dir mi interessava anche il nome completo nomefile.exe

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 17:34
Sabato, 21/10/2006
Prova ad usare

Codice sorgente - presumibilmente Plain Text

  1. DWORD WINAPI GetModuleFileName(
  2.   HMODULE hModule,
  3.   LPTSTR lpFilename,
  4.   DWORD nSize
  5. );



Definita in <windows.h>


Il mio blog: https://piero.dev
PM Quote
Avatar
Al3k (Normal User)
Newbie


Messaggi: 8
Iscritto: 16/10/2006

Segnala al moderatore
Postato alle 18:33
Sabato, 21/10/2006
grazie 1000!! va alla perfezione :rotfl:

posto il codice esempio completo (provato con devc++):

Codice sorgente - presumibilmente C/C++

  1. #include <windows.h>
  2.  
  3. DWORD WINAPI GetModuleFileName(HMODULE hModule,LPTSTR lpFilename,DWORD nSize);
  4.  
  5. int main(){
  6.     char c[255];
  7.     GetModuleFileName(NULL,c,255);
  8.     MessageBox(NULL,c,"exepath",MB_OK);
  9.     Sleep(1000);
  10.     return(0);
  11. }



ditemi se va bene così ... anche se va a volte un codice corretto non è detto che sia il migliore.
è poco che programmo in c++ (prima usavo solo vb6)

Ultima modifica effettuata da Al3k il 21/10/2006 alle 18:36
PM Quote
Avatar
Al3k (Normal User)
Newbie


Messaggi: 8
Iscritto: 16/10/2006

Segnala al moderatore
Postato alle 19:52
Sabato, 21/10/2006
ecco qua il programma un po ampliato

Codice sorgente - presumibilmente C++

  1. #include <windows.h>
  2. #include <string.h>
  3.  
  4. int main(){
  5.  
  6.     char system[MAX_PATH];
  7.     char pathtofile[MAX_PATH];
  8.     HMODULE GetModH = GetModuleHandle(NULL);
  9.  
  10. GetModuleFileName(GetModH,pathtofile,sizeof(pathtofile));
  11.     GetSystemDirectory(system,sizeof(system));
  12.    
  13.     strcat(system,"\\prg.exe");
  14.    
  15.     CopyFile(pathtofile,system ,false);
  16.  
  17. return 0;
  18. }



dovrebbe funzionare :d ...ma mi da errore a strcat:

stray '\148' in program

Ultima modifica effettuata da Al3k il 21/10/2006 alle 20:24
PM Quote
Avatar
Al3k (Normal User)
Newbie


Messaggi: 8
Iscritto: 16/10/2006

Segnala al moderatore
Postato alle 20:25
Sabato, 21/10/2006
ah nulla adesso va! :-|

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 8:34
Domenica, 22/10/2006
non serve scrivere il prototipo della funzione all'inizio del programma, e poi ti conviene compilarlo come un progetto non a console, in modo che la finestra del promp non ci sia....;)

PM Quote
Avatar
Al3k (Normal User)
Newbie


Messaggi: 8
Iscritto: 16/10/2006

Segnala al moderatore
Postato alle 13:00
Domenica, 22/10/2006
Ovvio :asd: già fatto

PM Quote