crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Помогите исправить ошибку
Intry
  опции профиля:
сообщение 10.9.2012, 11:21
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 10.9.2012
Пользователь №: 3516

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте.
При компиляции проекта возникают ошибки:
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
  опции профиля:
сообщение 10.9.2012, 14:36
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2890
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


ну сделай ему явное приведение, раз он так хочет )

if (UIN[i] == (char)0xd0)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Intry
  опции профиля:
сообщение 10.9.2012, 17:35
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 10.9.2012
Пользователь №: 3516

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Алексей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
  опции профиля:
сообщение 10.9.2012, 17:46
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 178
Регистрация: 6.6.2012
Пользователь №: 3414

Спасибо сказали: 23 раз(а)




Репутация:   2  


Цитата(Intry @ 10.9.2012, 18:35) *
А не подскажете, что тут надо подправить?
...
Строчка на которую ругается:
if (ssi_struct.Name != 0)

...

Смотря что сей код должен делать. Вместо нуля посмотри в сторону isEmpty() и isNull().
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.1.2020, 17:41