Seite 1 von 2

[gelöst]Eigenes QIODevice geht nicht.

Verfasst: 10. Oktober 2006 13:43
von BartSimpson
Hallo, ich habe folgendes Probelm: Ich habe mir eigenes QIODevice zur Dateiverschlüsselung gebaut. Lesen geht prima, nur schreiben kann nicht. Die Funktion writeData wird nicht aufgerufen.:(
Den Kode zum Lesen:

Code: Alles auswählen

QFile Datei("datei.dat");
Datei.open(QIODevice::ReadOnly))
Verschluesselung X(&Datei,"passwort);
X.readAll()
zum Schreiben nehme ich:
QFile Datei("Datei.dat");
Datei.open(QIODevice::Truncate|QIODevice::WriteOnly);
Verschluesselung X(&Datei,"passwort);
X.write(VerweisAufEinQByteArray);
In dem Verschlüsselungsobject habe ich Debugkode drin.
Welcher eine Meldung ausgibt, wenn readData/writeData aufgerufen wird.
Nur leider wird writeData nicht aufgerufen:(

Verfasst: 10. Oktober 2006 14:04
von Christian81
1. es gibt einen Debugger
2. zeige mal deine write() Definition und Deklaration

Verfasst: 10. Oktober 2006 14:05
von Goos
Hast denn mal in die QIODevice::write Methode reindebugt?
Dort wird doch normalerweise dein writeData aufgerufen.

Goos

Verfasst: 10. Oktober 2006 14:23
von BartSimpson
Christian81 hat geschrieben:1. es gibt einen Debugger
2. zeige mal deine write() Definition und Deklaration
zu 1. den in der Exprressversion vom VC kannste vergesssen.
2. die kann man ja nicht überschreiben.

Verfasst: 10. Oktober 2006 14:26
von Christian81
BartSimpson hat geschrieben:
Christian81 hat geschrieben:1. es gibt einen Debugger
2. zeige mal deine write() Definition und Deklaration
zu 1. den in der Exprressversion vom VC kannste vergesssen.
Ich konnte damit eigentlich nahezu alles debuggen was ich brauchte, sehe keinen Unterschied zu .NET 2003 oder 2005 Std... Und ein paar Steps in die write() - Funktion um zu schauen ob deine writeData() aufgerufen wird, sollte wohl kein Problem sein !!

Verfasst: 10. Oktober 2006 14:29
von BartSimpson
wie soll das denn bitte gehen??
Die write Funktion ist nicht virtuell!!

Verfasst: 10. Oktober 2006 14:37
von Christian81
BartSimpson hat geschrieben:wie soll das denn bitte gehen??
Die write Funktion ist nicht virtuell!!
Und was hat das mit dem debuggen zu tun? Ist es wirklich so schwer dort mal reinzusteppen und zu schauen ob deine eigene writeData() darin aufgerufen wird?

Ist openMode korrekt gesetzt?

Verfasst: 10. Oktober 2006 14:41
von Goos
BartSimpson hat geschrieben:wie soll das denn bitte gehen??
...mit F11 ;)

Goos

Verfasst: 10. Oktober 2006 14:44
von BartSimpson
ganz einfach du kannste ja schlecht ein Haltepunkt auf eine Funktion setzten, die du nicht hast weil die aus dem System kommt.:(
Der Modus für die Datei ist schon so richtig.

Verfasst: 10. Oktober 2006 14:45
von Sym
Kannst Du nicht hineinsteppen?

Verfasst: 10. Oktober 2006 14:53
von Goos
BartSimpson hat geschrieben:ganz einfach du kannste ja schlecht ein Haltepunkt auf eine Funktion setzten, die du nicht hast weil die aus dem System kommt.:(
Na deshalb hab ich doch F11 geschrieben.
Den Haltepunkt sollst auf dein Write setzen -> X.write(VerweisAufEinQByteArray);

Goos

Verfasst: 10. Oktober 2006 14:56
von BartSimpson
wie währe es mal mit einem vernümpftigen Deutsch!!!
Im Quellcode vom IODevie stehen leider nur ein Markos bevor die writeData Funktione aufgerufen werden soll. Und weis der Geier wo die Makros stehen:(

Verfasst: 10. Oktober 2006 14:57
von BartSimpson
Goos hat geschrieben:
BartSimpson hat geschrieben:ganz einfach du kannste ja schlecht ein Haltepunkt auf eine Funktion setzten, die du nicht hast weil die aus dem System kommt.:(
Na deshalb hab ich doch F11 geschrieben.
Den Haltepunkt sollst auf dein Write setzen -> X.write(VerweisAufEinQByteArray);

Goos
Nur müssete man dazu Qt direkt in die Express Version integrieren können, was leider nicht geht:(

Verfasst: 10. Oktober 2006 15:01
von Sym
BartSimpson hat geschrieben:wie währe es mal mit einem vernümpftigen Deutsch!!!
Im Quellcode vom IODevie stehen leider nur ein Markos bevor die writeData Funktione aufgerufen werden soll. Und weis der Geier wo die Makros stehen:(
Wen meinst Du damit? Oder ist das ein Ironieposting?

Verfasst: 10. Oktober 2006 15:01
von Christian81
BartSimpson hat geschrieben:wie währe es mal mit einem vernümpftigen Deutsch!!!
Im Quellcode vom IODevie stehen leider nur ein Markos bevor die writeData Funktione aufgerufen werden soll. Und weis der Geier wo die Makros stehen:(
Na wenn man nichtmal diese Makros findet... STRG+F ist die Suche :roll: