Skinney Skrevet 16. januar 2011 Del Skrevet 16. januar 2011 Hei! Har to funksjoner for å gjøre om variablene i en klasse til en ByteArray, slik at den ByteArray'en senere kan lagres i en fil. Jeg bruker Qt rammeverket her, så lagring og lasting gjøres ved hjelp av QSettings. Nå skal det sies at jeg er litt rusten i C++ da jeg hovedsaklig jobber med C#, men inntil videre er det ikke mulig å utvikle Nokia apps med C# så C++ it is. Uansett. Det er ingen problem å gjøre variablene om til ByteArray og så lagre dette, men jeg får "Bad Memory Access" feil når jeg prøver å gjøre ByteArray'en om til variabler igjen. Det morsomme her er at det fungerte mens klassene ikke var pointers/references (on the heap), men nå som jeg har gjort dem om til pointers av ulike grunner fungerer det plutselig ikke... Setter pris på all hjelp en kan få! Her er funksjonene: void TvShow::loadVariablesFromArray(QByteArray settings) { QDataStream in(&settings, QIODevice::ReadOnly); in >> this->ShowId >> this->ShowName >> this->ImagePath >> this->Description >> this->FirstAired >> this->NextEpisodeDate; } QByteArray TvShow::saveVariablesToArray() { QByteArray returnArray; QDataStream out(&returnArray, QIODevice::WriteOnly); out << this->ShowId << this->ShowName << this->ImagePath << this->Description << this->FirstAired << this->NextEpisodeDate; return returnArray; } Lenke til kommentar
BlueEAGLE Skrevet 16. januar 2011 Del Skrevet 16. januar 2011 Ren gjetting, men har du instansiert QByteArray settings og må du ikke sende den som en referanse til funksjonen når du bruker den med referanse i QDataStream in()? Lenke til kommentar
Dinosauromann Skrevet 16. januar 2011 Del Skrevet 16. januar 2011 (endret) Det morsomme her er at det fungerte mens klassene ikke var pointers/references (on the heap), men nå som jeg har gjort dem om til pointers av ulike grunner fungerer det plutselig ikke... Setter pris på all hjelp en kan få! Er variablene du prøver å skrive til pekere? I så fall kan det være grunnen. Kan være noe implisitt casting som foregår. Når jeg testa fikk jeg iallfall til å bruke <<-operatoren med en random pekertype, men ikke >>-operatoren. (Dog feilen kom vet kompillering) Kan prøve med: in >> *this->ShowId Endret 16. januar 2011 av oln Lenke til kommentar
zotbar1234 Skrevet 16. januar 2011 Del Skrevet 16. januar 2011 (...) Det er ingen problem å gjøre variablene om til ByteArray og så lagre dette, men jeg får "Bad Memory Access" feil (...) Hvor spesifikt får du denne feilen? (...) når jeg prøver å gjøre ByteArray'en om til variabler igjen. og hva betyr akkurat det? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå