|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6259
|
[C] Recupero path dell'exe
Ciao, ho una domanda sul C, sto usando VC++ per modificare un grosso progetto C (non mfc), vorrei sapere se esiste il modo di recuperare il path dell'exe del programma stesso....ossia, se metto l'exe in "C:\Pippo", vorrei che in una variabile mi trovassi appunto questo path, così da usarlo all'interno del programma.
Grazie
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
Quote:
__________________
![]() |
|
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
L'ho scritta al volo senza testarla ma dovrebbe funzionare:
Codice:
#include <iostream> #include <string> #include <windows.h> using namespace std; string PercorsoExe(void) { TCHAR szPath[MAX_PATH]; string path = ""; if (GetModuleFileName(NULL, szPath, MAX_PATH)) { path = szPath; path = path.substr(0, path.rfind("\\") + 1); } return path; } int main(){ cout << PercorsoExe() << endl; } Quote:
|
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6259
|
Uhm, io ho questa come main:
Codice:
int WINAPI WinMain(HINSTANCE instance, HINSTANCE previnst, LPSTR cmd, int show) ![]()
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
Quote:
![]()
__________________
![]() |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6259
|
Allora, prima di tutto grazie di tutti i preziosi consigli.
Ricercando con SanGoogle, ho trovato la funzione GetModuleFileName e funziona! Mi torna tutto il path però, compreso il nome del .exe. Con un'altra funzione, rimpiazzo il nome dell'exe con il nome del file che mi serve cercare in quel path e sono a posto. Grazie ancora cmq!
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
![]() Scusa, ma hai visto il mio codice? Non avevi bisogno di raccomandarti a SanGoogle, nel codice viene mostrato inoltre come estrarre il percorso dal path completo. Codice:
string PercorsoExe(void) { TCHAR szPath[MAX_PATH]; string path = ""; if (GetModuleFileName(NULL, szPath, MAX_PATH)) { path = szPath; path = path.substr(0, path.rfind("\\") + 1); } return path; } |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6259
|
Sisi, ma l'ho visto DOPO aver fatto la ricerca, visto che mi bloccava.
Cmq userò il tuo, è più corretto.
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
|
|
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
|
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6259
|
Uh, in effetti potrebbe fare al caso mio....purtroppo sono molto 'basic' come conoscenze del C, con VB avrei avuto decisamente meno problemi....sorry.
Proverò anche queste funzioni, di certo saranno più "eleganti" del metodo che ho usato io.... ![]()
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:59.