das gleiche Problem, welches ich in meinem letzten Thread angesprochen habe, jedoch hat es einen anderen Ursprung. Es wird ein Problem sein, wo mir vielleicht nur eine Handvoll Leute eventuell weiterhelfen können, aber ich werde es versuchen.
Zuerst einmal die Meldung im Application Output vom QtCreator.
Code: Alles auswählen
warning: Lowest section in C:\\WINDOWS\\system32\\xpsp2res.dll is .rsrc at 00011000
warning:
Code: Alles auswählen
*** A stack buffer overrun occurred in D:/Programmieren/qt/Archiver/debug/Archiver.exe :
warning: This is usually the result of a memory copy to a local buffer or structure where the size is not properly calculated/checked.
warning: If this bug ends up in the shipping product, it could be a severe security hole.
warning: The stack trace should show the guilty function (the function directly above __report_gsfailure).
warning: *** enter .exr 0022A3DC for the exception record
warning: *** then kb to get the faulting stack
Es handelt sich um ein Model für QTreeView, sozusagen einem Erweiterten QDirModel. Ich hantiere somit viel mit den Klasen QDir, QFileInfo und QIcon. Die ich oft erstelle und zuweise etc. Meinen Tests nach muss es irgendwie damit Zusammenhängen, ich habe wirklich viel versucht und auch versucht genauso vorzugehen, wie bei QDirModel (welches keine Probleme aufwirft aber auch nicht den Umfang hat), aber ohne wirklichen Erfolg.
Code: Alles auswählen
quint32 entryCount = infoList.count();
parent->children = QVector<DirModelEntry>(entryCount);
for (quint32 i = 0; i < entryCount; ++i) {
DirModelEntry &modelEntry = parent->children[i];
modelEntry.populated = false;
modelEntry.archiveEntry = 0;
modelEntry.parent = !isModelRoot ? parent : 0;
modelEntry.info = infoList.at(i);
if (!isSystemRoot) {
modelEntry.name = modelEntry.info.fileName();
} else {
modelEntry.name = modelEntry.info.filePath();
}
if (modelEntry.info.isDir()) {
modelEntry.kind = Dir;
} else if (isSupportedArchive(modelEntry.info.suffix())) {
modelEntry.kind = Archive;
} else {
modelEntry.kind = File;
}
modelEntry.size = modelEntry.info.size();
modelEntry.type = iconProvider->type(modelEntry.info);
modelEntry.modified = modelEntry.info.lastModified();
modelEntry.created = modelEntry.info.created();
modelEntry.accessed = modelEntry.info.lastRead();
modelEntry.attributes = getAttributes(modelEntry.info);
modelEntry.icon = iconProvider->icon(modelEntry.info);
}
Hoffentlich kennt jemand die tiefere Bedeutung von der "Fehlermeldung", hat selbst solche Erfahrungen gemacht oder sieht gar eine mögliche Fehlerquelle in dem Code.
Wenn jemand meint mir helfen zu können, wenn er das ganze Projekt bekommt und das auch tun möchte, so wäre ich eventuell dazu bereit. Dieses ganze Klassengeschiebe und Übergebe in Qt ist mir ein bisschen etwas neues, da ich in solchen Situationen, sonst immer zu Strukturen gegriffen habe und somit kein reiner OOP Programmierer bin *gg*