QVariant -> COM VARIANT |
Здравствуйте, гость ( Вход | Регистрация )
QVariant -> COM VARIANT |
shdevlp |
8.11.2011, 13:11
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 8.11.2011 Пользователь №: 2986 Спасибо сказали: 0 раз(а) Репутация: 0 |
Здравствуйте коллеги, помогите разобраться в сложном для меня вопросе — есть сгенеренный
утилитой dumpcpp класс из tlb файла, из которого мне нужно использовать функцию следующего вида: inline uint RSystem::GetInfo(const QVariant& varInfo); в Оригинале эта функция выглядит так: HRESULT GetInfo(VARIANT varInfo); более того для вызова этой функции varInfo надо подготовить таким образом: INFO data[16]; VariantInit(&varInfo); varInfo.vt = VT_BYREF|VT_UI1; varInfo.pbVal = (BYTE *)&data; Т.е. нужно каким то образом правильно преобразовать VARIANT в QVariant. Кто знаком с данным вопросом, куда копать? Может есть готовые решения? |
|
|
sidsukana |
8.11.2011, 17:32
Сообщение
#2
|
Участник Группа: Участник Сообщений: 158 Регистрация: 23.12.2010 Из: Челябинск Пользователь №: 2296 Спасибо сказали: 10 раз(а) Репутация: 2 |
А регистрация нового типа через Q_DECLARE_METATYPE не подходит?
|
|
|
shdevlp |
8.11.2011, 22:39
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 8.11.2011 Пользователь №: 2986 Спасибо сказали: 0 раз(а) Репутация: 0 |
А регистрация нового типа через Q_DECLARE_METATYPE не подходит? пробывал, не подходит - компилируется - но падает на этапе выполнения Кто знаком с данным вопросом, куда копать? Может есть готовые решения? Готовых решений,я думаю, нет. Здесь нужно аккуратно сопоставить типы VARIANT с типами QVariant. Встроенные типы QVariant находятся в перечислителе QVariant::Type. помогите сопоставить вручную. входной параметр в функцию VARIANT varInfo INFO data[16]; VariantInit(&varInfo); varInfo.vt = VT_BYREF|VT_UI1; varInfo.pbVal = (BYTE *)&data; Нашел описание в VARIANT VT_BYREF | VT_UI1 - соответствует BYTE * pbVal; в enum QVariant::Type я не нашел подобия BYTE * (( может использовать QVariant::Type = QByteArray? А регистрация нового типа через Q_DECLARE_METATYPE не подходит? пробывал, не подходит - компилируется - но падает на этапе выполнения Кто знаком с данным вопросом, куда копать? Может есть готовые решения? Готовых решений,я думаю, нет. Здесь нужно аккуратно сопоставить типы VARIANT с типами QVariant. Встроенные типы QVariant находятся в перечислителе QVariant::Type. помогите сопоставить вручную. входной параметр в функцию VARIANT varInfo INFO data[16]; VariantInit(&varInfo); varInfo.vt = VT_BYREF|VT_UI1; varInfo.pbVal = (BYTE *)&data; Нашел описание в VARIANT VT_BYREF | VT_UI1 - соответствует BYTE * pbVal; в enum QVariant::Type я не нашел подобия BYTE * (( может использовать QVariant::Type = QByteArray? Слабо представляю что должно быть в памяти вместо переменной VARIANT при вызове этой функции Цитата А регистрация нового типа через Q_DECLARE_METATYPE не подходит? пробывал, не подходит - компилируется - но падает на этапе выполнения Кто знаком с данным вопросом, куда копать? Может есть готовые решения? Готовых решений,я думаю, нет. Здесь нужно аккуратно сопоставить типы VARIANT с типами QVariant. Встроенные типы QVariant находятся в перечислителе QVariant::Type. помогите сопоставить вручную. входной параметр в функцию VARIANT varInfo INFO data[16]; VariantInit(&varInfo); varInfo.vt = VT_BYREF|VT_UI1; varInfo.pbVal = (BYTE *)&data; Нашел описание в VARIANT VT_BYREF | VT_UI1 - соответствует BYTE * pbVal; в enum QVariant::Type я не нашел подобия BYTE * (( может использовать QVariant::Type = QByteArray? Слабо представляю что должно быть в памяти вместо переменной VARIANT при вызове этой функции |
|
|
Текстовая версия | Сейчас: 3.12.2024, 12:57 |