Re[2]: как получить double из IDispatchPtr
От: Vasilich2222  
Дата: 18.03.14 22:17
Оценка:
Здравствуйте, Vi2, Вы писали:

Vi2>Здравствуйте, Vasilich2222, Вы писали:


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


V>>mean : double;

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

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


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

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

Vi2>
Vi2>IDispatchPtr pMeaner = m_TIA->ProcessingSystem()->Mean( pImagePlot->Data);
Vi2>_variant_t result = pMeaner->getProperty("real"); // за точность не ручаюсь
Vi2>double ddd = VT_R8(&result); // и тут тоже
Vi2>


Спасибо за ответ, но это не проходит.
pMeaner имеет только 7 методов (3 от COM и 4 от Disзatch).
real — это double паскале и паскаль это дело переворавчивает сам, так же как и VB.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.