crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> cannot convert parameter 1 from 'QVariant' to 'VARIANT'
Гость_Гость_loh_*_*
сообщение 15.7.2008, 16:06
Сообщение #1





Гости








    


почему мне выдаёт ошибку при работе с методом ком интерфейса cannot convert parameter 1 from 'QVariant' to 'VARIANT'? в документации qt написано что этот типа поддерживается =\
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Гость_Гость_loh_*_*
сообщение 15.7.2008, 23:29
Сообщение #2





Гости








    


в документации вот так можно

CODE
parameters << QVariant(varlist);
int n = object.dynamicCall("fillList(QList<QVariant>&)", parameters).toInt();

но так нельзя передать неподдерживаемый тип (в моем случае IGeometry**):

If you need to access properties or pass parameters of unsupported datatypes you must access the COM object directly through its IDispatch implementation or other interfaces.

тоесть

CODE
IUnknown *iface = 0;
activeX->queryInterface(IID_IUnknown, (void**)&iface);
if (iface) {
// use the interface
iface->Release();
}


но тогда мой QVariant надо как-то преобразовать в VARIANT

как это можно сделать? QVariant у меня типа QByteArray, а VARIANT нужен dataTypeEnum == adVarBinary (тоесть Indicates a binary value.)





а VARIANT вот тут вариант нужен:

[C++]
CODE
HRESULT CreateGeometryFromWkbVariant(
VARIANT wkb,
IGeometry** outGeometry,
long* numBytesRead
);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.1.2025, 7:01