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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сериализация  (Прочитано 1981 раз)
levcom
Гость
« : Март 14, 2012, 09:27 »

Подскажите что не так делаю,

Код:
    qint32 keyValue = 1;
    DBT sdbckey;
    DBT sdbcdata;
    ::memset(&sdbckey, 0, sizeof(DBT));
    ::memset(&sdbcdata, 0, sizeof(DBT));

    QByteArray aKey = QByteArray();
    QBuffer buffer(&aKey);
    buffer.open(QIODevice::WriteOnly);
    QDataStream s(&buffer);
    if (!QMetaType::save(s, meta_id_key, &keyValue))
        qCritical("QMetaType::save failed. is your key registered with the QMetaType?");
    buffer.close();
    sdbckey.size = aKey.size();
    sdbckey.data = ::malloc(aKey.size());
    ::memcpy(sdbckey.data, aKey.data(), aKey.size());



    qint32 v = 1;
    DBT dbckey;
    DBT dbcdata;
    ::memset(&dbckey, 0, sizeof(DBT));
    ::memset(&dbcdata, 0, sizeof(DBT));
    dbckey.data = &v;
    dbckey.size = sizeof(qint32);


Как я понимаю результат должен быть один и тот же в dbckey.data и sdbckey.data.
Записан
Nimbus
Гость
« Ответ #1 : Март 14, 2012, 13:44 »

Код
C++ (Qt)
...
sdbckey.data = ::malloc(aKey.size());
...
qint32 v = 1;
dbckey.data = &v;
Да с чего вдруг?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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