Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите исправить ошибку
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
Intry
Здравствуйте.
При компиляции проекта возникают ошибки:
1. myclient.cpp:65: ошибка: C2666: QByteRef::operator ==: для 2 перегрузок есть подобные преобразования
\QtSDK\Desktop\Qt\4.8.1\msvc2010\include\QtCore/qbytearray.h(475): может быть "bool QByteRef::operator ==(char) const"
или "встроенный оператор C++==(char, int)"
при попытке сопоставить список аргументов "(QByteRef, int)"

кусок кода на который ругается(в частности на строчку "if (UIN[i] == 0xd0)" и "if (UIN[i] == 0xd1);"):
QByteArray MyClient::DecryptUINToAscii(QByteArray UIN)
{
    //qint8 dob = 0;
    QByteArray text;
    for (int i = 0; i < UIN.size(); i++)
    {
        if (UIN[i] == 0xd0)
        {
            i++;
            if (UIN[i] == 0xd1);
            text.append(Int8ToArray(UIN[i]+16*3));
        }

Помогите, пожалуйста, исправить.
Алексей1153
ну сделай ему явное приведение, раз он так хочет )

if (UIN[i] == (char)0xd0)
Intry
Цитата(Алексей1153 @ 10.9.2012, 15:36) *
ну сделай ему явное приведение, раз он так хочет )

if (UIN[i] == (char)0xd0)

Спасибо, помогло. А не подскажете, что тут надо подправить?

Ошибка:
Цитата
\Qt\untitled-build-desktop-Qt_4_8_1_for_Desktop_-_MSVC2010__Qt_SDK_________\..\untitled\myclient.cpp:121: ошибка: C2666: QByteArray::operator !=: для 10 перегрузок есть подобные преобразования
\QtSDK\Desktop\Qt\4.8.1\msvc2010\include\QtCore/qbytearray.h(289): может быть "bool QByteArray::operator !=(const QString &) const"
\QtSDK\Desktop\Qt\4.8.1\msvc2010\include\QtCore/qstring.h(1240): или "bool operator !=(const char *,const QStringRef &)"
\QtSDK\Desktop\Qt\4.8.1\msvc2010\include\QtCore/qstring.h(1206): или "bool operator !=(const QString &,const QStringRef &)"
\QtSDK\Desktop\Qt\4.8.1\msvc2010\include\QtCore/qstring.h(938): или "bool operator !=(const char *,const QString &)"
\QtSDK\Desktop\Qt\4.8.1\msvc2010\include\QtCore/qbytearray.h(537): или "bool operator !=(const char *,const QByteArray &)"
\QtSDK\Desktop\Qt\4.8.1\msvc2010\include\QtCore/qbytearray.h(535): или "bool operator !=(const QByteArray &,const char *)"
\QtSDK\Desktop\Qt\4.8.1\msvc2010\include\QtCore/qbytearray.h(533): или "bool operator !=(const QByteArray &,const QByteArray &)"
или "встроенный оператор C++!=(QNoImplicitBoolCast, int)"
или "встроенный оператор C++!=(const char *, const char *)"
или "встроенный оператор C++!=(const void *, const void *)"
при попытке сопоставить список аргументов "(QByteArray, int)"


Строчка на которую ругается:
if (ssi_struct.Name != 0)


структура:
struct SSI
{
    qint16 NameLen;
    QByteArray Name;
    qint16 SubGroupNum;
    qint16 GroupNum;
    qint16 Type;
    qint16 DataLen;
    QByteArray Data;
};
iReset
Цитата(Intry @ 10.9.2012, 18:35) *
А не подскажете, что тут надо подправить?
...
Строчка на которую ругается:
if (ssi_struct.Name != 0)

...

Смотря что сей код должен делать. Вместо нуля посмотри в сторону isEmpty() и isNull().
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.