20/10/10 19:42
jerry74
Sera a tutti, nel creare una piccola applicazione ho avuto la necessità di avviare un file exe; dopo diverse ricerche ho creato il seguente codice che funziona correttamente:
Per puro scopo didattico, questo codice è già ottimale oppure si può migliorare?
Mi sembra che ci siano troppe conversioni tra tipi o sbaglio?
// acquisisco il percorso di esecuzione del file TCHAR *tchar_string = (argv[0]); // lo trasformo in una wstring std::wstring path (tchar_string); //elimino la parte relativa al nome del file ed estensione path = path.substr(0, path.rfind('\')); // converto il percorso in const wchar_t const wchar_t* tpath = path.c_str(); // converto in wchar_t wchar_t* __tpath = new wchar_t[0xFF]; wcscpy_s(__tpath, 200, tpath); // acquisisco cartella e nome file da avviare wchar_t* __file__ = TEXT("\fw40\setup.exe"); // Creo il percorso completo std::wcscat(__tpath, __file__); // Avvio il programma ShellExecuteW(NULL,TEXT("open"),__tpath,NULL,NULL,SW_SHOWNORMAL);
Per puro scopo didattico, questo codice è già ottimale oppure si può migliorare?
Mi sembra che ci siano troppe conversioni tra tipi o sbaglio?
aaa