Pages

Problème de pointeur / QDataStream et/ou QByteArray sujet

samedi 1 février 2014




Bonjour, je souhaite faire une classe équivalente a IDataInput(ActionScript 3.0) en C++ avec Qt

Voici toutes mes sources

main.cpp

Code:


#include <DataInput.h>
#include <QtCore>
#include <QApplication>

int main(int argc, char *argv[])
{
        QApplication a(argc, argv);

        bool myBool =  true;

        //Création d'un tableau
        QByteArray myByteArray;

        // Je rajoute le bool true dans le tableau
        QDataStream myStream(&myByteArray, QIODevice::WriteOnly);
        myStream << myBool;

        // J'extrais le bool du tableau
        DataInput dataRead(&myByteArray);
        myBool = dataRead.readBoolean();

        // qDebug() retourne false, pourtant j'ai donné un true
        qDebug() << myBool;

        return a.exec();
}

        bool myBool =  true;

        QByteArray myByteArray;
        QDataStream myStream(&myByteArray, QIODevice::WriteOnly);
        myStream << myBool;

        DataInput dataRead(&myByteArray);
        qDebug() << dataRead.readBoolean();

        return a.exec();
}


DataInput.cpp

Code:


#include "DataInput.h"

DataInput::DataInput(QByteArray *byteArray)
{
        QDataStream m_myStream(*byteArray);
}

bool DataInput::readBoolean()
{
        bool myBool;
        m_myStream >> myBool;
        return myBool;
}


DataInput.h

Code:


#ifndef DATAINPUT_H
#define DATAINPUT_H

#include <QByteArray>
#include <QDataStream>

class DataInput
{
public:
        DataInput(QByteArray *byteArray);

        bool readBoolean();

private:
        QDataStream m_myStream;

};

#endif // DATAINPUT_H


Dans le main, je crée un tableau d'octet et je rajoute un bool qui vaut true.
Seulement quand j'essaye de l'extraire avec ma classe DataInput, je reçois un false.

Je ne comprends pas pourquoi, pourriez-vous me donner un peu d'aide ?
Merci à tous et bonne journée !




Aucun commentaire:

Enregistrer un commentaire