Re: как получить double из IDispatchPtr
От: Vi2 Удмуртия http://www.adem.ru
Дата: 18.03.14 21:56
Оценка:
Здравствуйте, Vasilich2222, Вы писали:

V>пример использования в Паскале (не уверен, что весь пример правильный) вот такой


V>mean : double;

V>mean := FTia.ProcessingSystem.Mean(FImage2.Data).real;

FTia.ProcessingSystem.Mean(FImage2.Data) — это вызов описанного выше "IDispatch* Mean(IDispatch* Data)". Она возвращает объект, который имеет свойство или метод "real", который возвращает уже число. Поищи у себя tlh файле это real, может он там есть.

V>Чтобы использовать Invoke() мне нужно знать ID. Получить ID можно через GetIDsOfNames(), но я не знаю какое использовать имя.

V>Да, GetTypeInfoCount() возвращает 0.

IDispatchPtr pMeaner = m_TIA->ProcessingSystem()->Mean( pImagePlot->Data);
_variant_t result = pMeaner->getProperty("real"); // за точность не ручаюсь
double ddd = VT_R8(&result); // и тут тоже
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.