PDA

View Full Version : [C++\Visual Studio 2008 Problema argomenti main]


fdf86
12-10-2010, 12:46
Salve a tutti,
scrivo perché ho uno stupido problema che mi ha fatto perdere già troppo tempo..
Ho un'applicazione c++ compilata con Visual Studio 2008..
Ho la necessità di "simulare" degli argomenti da passare al main (è solo un test)..
Ho inserito gli argomenti che mi servono nella sezione Proprietà/ Proprietà di Configurazione/ Debugging / Command Arguments..
Stampandoli a video però mi sono accorto che il vettore args contiene solo il primo carattere di ogni argomento..
potete aiutarmi?

Questo è il main


int _tmain(int argc, char** args)
{
for (int i=0;i<argc;i++)
qDebug()<<args[i];

QString j=args[1];
QApplication app(argc, args);


return app.exec();


return 0;
}

i parametri che inserisco sono (ma sono casuali per ora):

142.3.0.1 8080 FDMU-8960608

e quello che ottengo in stampa è:

c
1
8
F


Grazie mille in anticipo!
Francesco

fdf86
12-10-2010, 12:55
Ho avuto un'illuminazione ed ho risolto..
ho cambiato il _tmain con main e funziona...
sapreste dirmi perchè? :p
Grazie!

giangian2
12-10-2010, 14:38
Di default visual studio 2008 crea un progetto UNICODE ed il parametro "args" è di tipo _TCHAR.
Nel tuo caso "args" è di tipo char (non UNICODE) mentre la funzione di avvio dell'applicazione è _tmain (quindi UNICODE)... quindi la funzione si aspetta i parametri di un tipo ma gli arrivano di un'altro.

ciao

fdf86
12-10-2010, 15:22
Grazie mille!
Avevo provato anche ad utilizzare _TCHAR ma mi dava un problema di conversione in char** nella QApplication.
Devo studiare tanto!!
Ciao!

giangian2
12-10-2010, 15:40
Se hai delle funzioni che si aspettano un char devi utilizzare le macro W2A, W2CA, ...
Se la tua necessità non è quella di creare un'applicazione UNICODE, allora ti cosiglio di modificare le proprietà del progetto ed impostato che l'applicazione non è UNICODE.

ciao ciao