QByteArray к целому числу

Хорошо я сделаю (более короткий):

  • Frontend: Гобелен (3 для более старых проектов, 5 для более новых проектов)
  • уровень Business: дао Spring
  • : база данных Ibatis
  • : Oracle

Мы используем поддержку транзакции Sping и запускаем транзакции после ввода уровня служб, распространяя вниз к вызову ДАО. Уровень служб имеет самое бизнес-знание модели, и ДАО делает относительно простую работу CRUD.

Некоторый более сложный материал запроса обрабатывается более сложными запросами в бэкенде по причинам производительности.

Преимущества использования Spring в нашем случае состоят в том, что у нас могут быть подчиненные экземпляры страны/языка, которые находятся позади Прокси-класса Spring. На основе пользователя на сессии корректная реализация страны/языка используется при выполнении вызова.

управление транзакциями почти прозрачно, откат на исключениях на этапе выполнения. Мы используем неконтролируемые исключения как можно больше. Мы раньше делали контролируемые исключительные ситуации, но с введением Spring я вижу преимущества исключений непроверенных, только обрабатывая исключения, когда Вы можете. Это избегает большого количества шаблона "выгода/перебросок" или "бросает" материал.

Жаль это короче, чем Ваше сообщение, надежда, Вы находите это интересным...

10
задан Toby Speight 2 September 2015 в 15:48
поделиться

3 ответа

Я сам не пробовал, чтобы проверить, работает ли это, но похоже, что из документации Qt вам нужен QDataStream. Он поддерживает извлечение всех основных типов C ++ и может быть создан с помощью QByteArray в качестве входных данных.

8
ответ дан 3 December 2019 в 13:35
поделиться

Что-то вроде этого должно работать, используя поток данных для чтения из буфера:

QDataStream ds(buffer);
short size; // Since the size you're trying to read appears to be 2 bytes
ds >> size;

// You can continue reading more data from the stream here
25
ответ дан 3 December 2019 в 13:35
поделиться

Метод toInt анализирует int, если QByteArray содержит строку с цифрами. Вы хотите интерпретировать необработанные биты как целое число. Я не думаю, что в QByteArray есть метод для этого, поэтому вам придется самому создавать значение из отдельных байтов. Возможно, что-то вроде этого будет работать:

int size = (static_cast<unsigned int>(q_size[0]) & 0xFF) << 8
         + (static_cast<unsigned int>(q_size[1]) & 0xFF);

(Или наоборот, в зависимости от порядка байтов)

9
ответ дан 3 December 2019 в 13:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: