Gå til innhold

Klarer ikke laste informasjon fra QSettings


Anbefalte innlegg

Skrevet

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;
}

Videoannonse
Annonse
Skrevet (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 av oln
Skrevet

(...) 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?

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...