PDA

View Full Version : [C++/C/QT] Sviluppo su QT per principiante


maurice74
30-07-2010, 23:05
ok ho aperto un nuovo thread
ho dato un occhio a QT ed è molto più chiaro di wxsmith
quindi ok QT
Adesso primo problema...ho un sacco di file e func scritte in c e che su codeblocks compilano correttamente
Messe in un progetto di QT, danno un sacco di errori
E' normale ? come mai?

Teo@Unix
30-07-2010, 23:20
perchè il C++ non è C.

Qt è per C++, questo è un linguaggio più rigido, il compilatore restituirà molti più errori e warning, anche solo per dei cast su puntatori...
una soluzione (se è per te possibile) compilare il codice con codeblock producendo dll che riutilizzerai in Qt.....

maurice74
31-07-2010, 12:05
potrebbe essere possibile...se sapessi come si fa
alternativamente...potrei modificare il codice in maniera che funzioni....dopotutto mi sta dando una ventina di errori e altrettanti di warning...

te che consigli?

cionci
01-08-2010, 01:28
Basta fare le correzioni, no ?

dojolab
01-08-2010, 09:22
Basta fare le correzioni, no ?

In effetti... non capisco dove stia il problema :O

maurice74
02-08-2010, 15:16
infatti farò così...

ho bisogno però di qualche aiuto...

intanto...nel codice in c caricavo un file binario in questo modo

#define BACK "img.raw"
#define NPX 1104
#define NPY 1104

FILE* fp_back;
buffer = (unsigned char*) malloc(NPX*NPY);

fp_back=fopen(BACK,"rb");
if (!fp_back)
{
printf("Fileopen error\n");
return(1);
}

fread(buffer, (NPX*NPY), 1, fp_back);


Adesso per riscriverlo in QT Creator...
ho messo un QLineEdit per inserire il nome del file...vorrei che alla pressione di un tasto avvenisse il caricamento...
Ho provato ad usare lo stesso codice ma mi va in crash...

int MainWindow::Elaborate()
{
#define NPX 1104
#define NPY 1104

unsigned char* backbuffer;
FILE* fp_back;

QString backfilename=ui->backEdit->text();

backbuffer = (unsigned char*) malloc(2*NPX*2*NPY);
QByteArray ba = backfilename.toLatin1();

const char *filename = ba.data();

fp_back=fopen(filename,"rb");
if (!fp_back)
{
close();
}

fread(backbuffer, (2*NPX*2*NPY), 1, fp_back);
return(0);
}

cosa sbaglio ?
c'è un modo migliore per caricare questa immagine raw in un vettore ?
grazie