Russian Qt Forum
Апрель 23, 2024, 22:03 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QString std::string  (Прочитано 2678 раз)
BuRn
Гость
« : Октябрь 25, 2014, 17:57 »

Мне кажется , или оно конвертит немного не так. Суть:
Код:
std::string serializeData;
    requestDate.SerializeToString(&serializeData);
    QString b(serializeData.c_str());
    selector::DataUserSelector qweqwe;
    std::string serializeData1 = b.toStdString();
    qweqwe.ParseFromString(serializeData1);
    qweqwe.PrintDebugString();
Используется протобаф гугла, так вот, если загрузить qweqe из исходной строки, которую он заполнил в SerializeToString, то загружает ок, а вот если сделать через QString, то уже не загружает. Пока копаться в коде, который сгенерировал их protobuf не стал, но очевидно что они !=
Записан
BuRn
Гость
« Ответ #1 : Октябрь 25, 2014, 21:02 »

Проблему частично порешал, QString::fromStdString(serializeData);. Для QString-ов помогло, но засада остается с QByteArray, при конвертации туда и обратно. От QByteArray не избавится никак, эти данные нужно писать в сокет
Записан
vulko
Гость
« Ответ #2 : Октябрь 27, 2014, 10:50 »

Зачем избавляться от QByteArray?

QByteArray это обертка вокруг char*. Записать в него c-string можно с помощью QDataStream.writeRawData(char*, len) например.

В чем собственно проблема?
Записан
BuRn
Гость
« Ответ #3 : Ноябрь 09, 2014, 11:44 »

Зачем избавляться от QByteArray?

QByteArray это обертка вокруг char*. Записать в него c-string можно с помощью QDataStream.writeRawData(char*, len) например.

В чем собственно проблема?
проблема была в 0x00,указание размера, решило проблему
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 20.