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
codice:
Eccezione first-chance a 0x006281f4 in PlayerSamsung.exe: 0xC0000005: Violazione di accesso nella lettura del percorso 0x006281f4.
Ora essendo un nabbo di VC++ so che questo problema è dovuto al non rilascio della memoria ma non riesco a capire dov'è che sbaglio.
Vi posto di seguito il codice incriminato
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);
}
ip, model, user, e password sono delle CString port è un integer che vengono inizializzati in questo modo.
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)
Ora non capisco perchè se non richiamo la initParametri l'errore non compare se la chiamo compare.
Qualcuno potrebbe aiutarmi?