Ciao a tutti
Ho un programma che richiama una funzione che legge i parametri passati al programma da riga di comando.
Solo che questa funzione mi crea dei problemi con la memoria
Ora essendo un nabbo di VC++ so che questo problema è dovuto al non rilascio della memoria ma non riesco a capire dov'è che sbaglio.codice:Eccezione first-chance a 0x006281f4 in PlayerSamsung.exe: 0xC0000005: Violazione di accesso nella lettura del percorso 0x006281f4.
Vi posto di seguito il codice incriminato
ip, model, user, e password sono delle CString port è un integer che vengono inizializzati in questo modo.codice:void CPlayerSamsungDlg::initParametri() { LPWSTR *szArglist; int nArgs; szArglist = CommandLineToArgvW(GetCommandLine(), &nArgs); if( NULL == szArglist ) { printf("CommandLineToArgvW failed\n"); }else{ ip.Format(_T("%s"),szArglist[1]);// = CString(szArglist[1]); port = _ttoi(szArglist[2]); model.Format(_T("%s"),szArglist[3]); user.Format(_T("%s"),szArglist[4]); passwd.Format(_T("%s"),szArglist[5]); } GlobalFree(szArglist); }
Ora non capisco perchè se non richiamo la initParametri l'errore non compare se la chiamo compare.codice:#define LOGIN_ID "admin" #define PASSWORD "4321" #define IP_ADDRESS "192.168.5.193" #define PORT_NUM 4520 #define MODEL_NAME "pippo pippo" , ip(_T(IP_ADDRESS)) , model(_T(MODEL_NAME)) , user(_T(LOGIN_ID)) , passwd(_T(PASSWORD)) , port(PORT_NUM)
Qualcuno potrebbe aiutarmi?

Rispondi quotando