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?