Xorowanie danych

0

Witam wszystkich serdecznie.

Mam pewnego rodzaju kłopot, a mianowicie... Chciałbym napisać program, który xoruje dane zapisane w pliku tekstowym, ale .... jakikolwiek typ danych podam do xorowania, np QString, QByteArray, QBitArray, a nawet pojedynczy znak QChar pojawia mi się następujący błąd podczas kompilacji:

błąd: no match for 'operator^' (operand types are 'QChar' and 'QChar')

Czy mógłby ktoś pomóc w kwestii doboru odpowiedniego typu danych, aby xor był dozwolony, chyba, że mój błąd polega na zupełnie czymś innym ?

Dziękuję z góry za pomoc oraz pozdrawiam :)

1

QChar to klasa, która nie definiuje tego operatora. Możesz xorować wyniki metody unicode. http://doc.qt.io/qt-5/qchar.html#unicode

1

Na upartego...

#include <QCoreApplication>

ushort operator^(QChar a, QChar b)
{
    return a.unicode() ^ b.unicode();
}

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

    QChar c = L'a';
    QChar d = L'b';

    ushort e = c ^ d;
}

Dlaczego by nie zwracać QChar?
Dlatego, że wynik xora niekoniecznie będzie prawidłowym codepointem unicode'u.

0

Dzięki wielkie za pomoc. Po dopisaniu do zmiennej QChar .unicode() już nie pokazuje błędu :)

0

Odnośnie QT i kompilowania programu jeszcze jedno pytanko, jeśli można w tym poście... Dołączenie wszystkich bibliotek (QT5Core.dll, QT5Gui.dll, itd.) do exe, to kwestia ustawień w QT creatorze, czy bardziej dopisaniu paru komend w kodzie?

0

To kwestia kompilacji statycznej, w przypadku Qt to dużo roboty, kłopoty licencyjne, odpuść sobie. Za to użyj narzędzia windeployqt http://doc.qt.io/qt-5/windows-deployment.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1