Название: не могу разобрать ошибку invalid conversion from ‘ssize_t {aka int}’ to ‘const Отправлено: NellyM от Декабрь 07, 2016, 22:47 подскажите пожалуйста как можно конвертировать исправить.
упомянутая ошибка указывает на строку res = read(SocketFd, str, MAX_BUFFER); а конкретно на SocketFd QString ress; const char* res= ress.toLatin1().constData(); res = read(SocketFd, str, MAX_BUFFER); объявила ее вот так: int SocketFd = ::accept(listener, (struct sockaddr*) NULL, NULL); исходный код на Си выглядел следующим образом. int SocketFd = accept(listener, (struct sockaddr*) NULL, NULL); char res; res = read(SocketFd, str, MAX_BUFFER); мне срочно нужно его конвертировать в Qt. надеюсь на Вашу помощь Название: Re: не могу разобрать ошибку invalid conversion from ‘ssize_t {aka int}’ to ‘const Отправлено: __Heaven__ от Декабрь 08, 2016, 10:50 Данных мало.
Заметил, что раньше был char res, а сейчас const char *res, если сигнатура read не менялась, то странно, почему не ругается компилятор на оператор присваивания. Покажите больше кода, конкретно сигнатуру read. Используйте теги форматирования для оформления листинга. Название: Re: не могу разобрать ошибку invalid conversion from ‘ssize_t {aka int}’ to ‘const Отправлено: Пантер от Декабрь 08, 2016, 10:56 const char* res= ress.toLatin1().constData();
Никогда так не делайте!!! А QTcpSocket чем не угодил? Название: Re: не могу разобрать ошибку invalid conversion from ‘ssize_t {aka int}’ to ‘const Отправлено: __Heaven__ от Декабрь 08, 2016, 11:08 const char* res= ress.toLatin1().constData(); На всякий случай поясню.Никогда так не делайте!!! Здесь toLatin1() создаёт временный объект типа QByteArray, деструктор которого вызывается в этой же строке. Вы у этого временного объекта просите указатель на его член и присваиваете его в res. После вызова деструктора временного объекта, res становится недействительным указателем. |