[SOLVED] debug error r6010 abort has been called while running perfectly
-
I am trying to generate QWTspectrogram using a file. there are 500 binary files to show an annimation with a slider in UI. the program works fine but sometimes it gives "debug error r6010 abort has been called" error and crashes on any random occasion I have no idea why this shows up because it is random however it depends on the change in fnum as slider moves but not at any fixed value or time(it does not appear at stationary condition). below is the code for my program
setAlpha is changed with the change in slider of UI.
@ void Plot::setAlpha( int alpha )
{ fnum=alpha; d_spectrogram->setData( new mydata(fnum,dial) ); d_spectrogram->attach( this ); replot(); } class mydata: public QwtRasterData { typedef signed short int sBYTE; char filepath[35]; sBYTE *fileBuf; FILE *file = NULL; public: mydata(int fnum, int dial) { setInterval( Qt::XAxis, QwtInterval( 0, (area)-1 ) ); setInterval( Qt::YAxis, QwtInterval( 0, (area)-1 ) ); setInterval( Qt::ZAxis, QwtInterval( -dial, dial ) ); { sprintf_s(filepath, "c:/mydata/dfile%d.bin", fnum); fopen_s(&file,filepath, "rb"); long fileSize = getFileSizex(file); fileBuf = new sBYTE[fileSize]; fread(fileBuf, fileSize, 1, file); fclose(file); } } virtual double value( double x, double y ) const { int x_pos = static_cast<int>(x); int y_pos = static_cast<int>(y); const double c = (fileBuf[ ((x_pos)+((area-y_pos)*area))]); return c; }
}@
-
If you're new to exceptions in c++, you should read the following "tutorial":http://www.cplusplus.com/doc/tutorial/exceptions/.
-
Hi,
Also, since you are using Qt, why don't you make use of QString/QFile/QByteArray ?
-
thank you SGiast :) it is working now
QFile myfile;
myfile.setFileName("c:/file.bin");
if(!myfile.open(QIODevice::ReadOnly)) return;QDataStream data(&myfile);
data.setByteOrder(QDataStream::LittleEndian);
QVector<qint16> result;
while(!data.atEnd()) {
qint16 x;
data >> x;
result.append(x);
}