Я получаю результат метода С++ invoke(...) в типе VARIANT * var. var – это изображение .bmp.
qDebug() << var.vt; //8209 ~ VT_ARRAY|VT_UI1 ~ SAFEARRAY(BYTE)
Как преобразовать его из SAFEARRAY(BYTE) в QByteArray? Или как получить QImage (QPixmap, QBitmap)? Спасибо/.
SAFEARRAY*
находится вvar.parray
. ИспользуйтеSafeArrayGetLBound
иSafeArrayGetUBound
, чтобы определить его размер (помните, что границы включены; размер равенubound-lbound+1
), иSafeArrayAccessData
, чтобы получить указатель на необработанные данные. Оберните егоQByteArray
с помощьюQByteArray::fromRawData
. Не забудьтеSafeArrayUnaccessData
иVariantClear
, когда закончите. - person Igor Tandetnik   schedule 23.11.2015