[gelöst]Eigenes QIODevice geht nicht.

Alles rund um die Programmierung mit Qt
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

[gelöst]Eigenes QIODevice geht nicht.

Beitrag 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:(
Zuletzt geändert von BartSimpson am 10. Oktober 2006 15:49, insgesamt 1-mal geändert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

1. es gibt einen Debugger
2. zeige mal deine write() Definition und Deklaration
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Goos
Beiträge: 360
Registriert: 17. August 2004 10:10
Wohnort: Black Forest

Beitrag von Goos »

Hast denn mal in die QIODevice::write Methode reindebugt?
Dort wird doch normalerweise dein writeData aufgerufen.

Goos
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag 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.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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 !!
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

wie soll das denn bitte gehen??
Die write Funktion ist nicht virtuell!!
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Goos
Beiträge: 360
Registriert: 17. August 2004 10:10
Wohnort: Black Forest

Beitrag von Goos »

BartSimpson hat geschrieben:wie soll das denn bitte gehen??
...mit F11 ;)

Goos
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag 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.
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag von Sym »

Kannst Du nicht hineinsteppen?
Goos
Beiträge: 360
Registriert: 17. August 2004 10:10
Wohnort: Black Forest

Beitrag 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
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag 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:(
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag 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:(
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag 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?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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:
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten