Ошибка отладки QT r6010 abort был вызван во время работы отлично

Я пытаюсь сгенерировать QWTspectrogram, используя файл. Есть 500 двоичных файлов, чтобы показать анимацию с помощью ползунка в пользовательском интерфейсе. программа работает нормально, но иногда выдает ошибку «ошибка отладки r6010 прервана» и вылетает при любом случайном случае. Я не знаю, почему это проявляется, потому что оно случайное, однако это зависит от изменения fnum при перемещении ползунка, но не при любое фиксированное значение или время (оно не отображается в стационарном состоянии). ниже приведен код моей программы

setAlpha изменяется с изменением ползунка пользовательского интерфейса.

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/uwpi%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;
}
}

0

Решение

решается с помощью QFile, QDatasteam и QVector

спасибо за ваш ответ это сработало сейчас …

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);
}
0

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector