Hier mal der Code und die jeweilige Stelle wo er Unterbricht:
Code: Alles auswählen
QImage* displayWidget::loadBMP(QString filename){
if(filename == "")
return NULL;
QFile f(filename);
if(!f.open(QIODevice::ReadOnly))
return NULL;
f.close();
QImage img;
if(img.load(filename, "BMP"))
return &img;
else return NULL;
}
Image_Converter converter = *converterPtr;
Code: Alles auswählen
QImage QImage::convertToFormat(Format format, Qt::ImageConversionFlags flags) const
{
if (!d || d->format == format)
return *this;
if (format == Format_Invalid || d->format == Format_Invalid)
return QImage();
const Image_Converter *converterPtr = &converter_map[d->format][format];
Image_Converter converter = *converterPtr;
if (converter) {
QImage image(d->width, d->height, format);
QIMAGE_SANITYCHECK_MEMORY(image);
image.setDotsPerMeterY(dotsPerMeterY());
image.setDotsPerMeterX(dotsPerMeterX());
[...]
Code: Alles auswählen
QImage* displayWidget::loadBMP(QString filename){
if(filename == "")
return NULL;
QFile f(filename);
if(!f.open(QIODevice::ReadOnly))
return NULL;
f.close();
QImage* img;
if(img->load(filename, "BMP"))
return img;
else return NULL;
}d = image.d;
Code: Alles auswählen
QImage &QImage::operator=(const QImage &image)
{
if (image.d)
image.d->ref.ref();
if (d && !d->ref.deref())
delete d;
d = image.d;
return *this;
}In beiden Fällen ist es eine Zugriffsverletzung beim Schreiben.