В доках пример на VC (СОМ интерфейс)
Если убрать лишнее получится
#import "C:\RVNA\RVNA.exe" no_namespace
IRVNAPtr pNWA; // Pointer to COM object of RVNA.exe
CComVariant Data; // Variable for measurement data
Data = pNWA->SCPI->get_CALCulate(1)->SELected->DATA->get_FDATa();
TSafeArrayT <double,VT_R8,1> mSafeArray;
mSafeArray.Attach(Data.parray);
........................................
mSafeArray.Detach();
Утечка видимо происходит на на строчке выделенной болдом
Здравствуйте, wtch, Вы писали:
W>Снимаю данные с векторного рефлектометра серии CABAN W>http://www.planarchel.ru/Products/Measurement%20instrument/r-series/
... W>#include "R54Lib_TLB.h" // вместо #import "C:\RVNA\RVNA.exe"
W> VARIANT Data; W> IRVNAPtr pNWA; W> pNWA = CoRVNA::Create(); W> pNWA->>SCPI->TRIGger->SEQuence->SINGle(); W> Data = pNWA->SCPI->get_CALCulate(1)->SELected->DATA->get_FDATa();
W>Утечка видимо происходит на на строчке выделенной болдом
Здравствуйте, kov_serg, Вы писали:
_>Здравствуйте, wtch, Вы писали:
W>>Снимаю данные с векторного рефлектометра серии CABAN W>>http://www.planarchel.ru/Products/Measurement%20instrument/r-series/ _>... W>>#include "R54Lib_TLB.h" // вместо #import "C:\RVNA\RVNA.exe"
W>> VARIANT Data; W>> IRVNAPtr pNWA; W>> pNWA = CoRVNA::Create(); W>> pNWA->>SCPI->TRIGger->SEQuence->SINGle(); W>> Data = pNWA->SCPI->get_CALCulate(1)->SELected->DATA->get_FDATa();
W>>Утечка видимо происходит на на строчке выделенной болдом
_>А почему Data не CComVariant ?
В шестом билдере к сожалению нет CComVariant....
Здравствуйте, Vi2, Вы писали:
Vi2>Здравствуйте, wtch, Вы писали:
W>>Прошу помощи.
Vi2>VARIANT не имеет деструктора, поэтому нужно освобождать или через VariantClear, или не делать Detach() у mSafeArray.
VariantClear не помогает... Завтра попробую без Detach(). девайс на работе.
Хотя цикл
{
Data = ...
VariantClear();
}
тоже протекал.
Здравствуйте, wtch, Вы писали:
W>VariantClear не помогает... Завтра попробую без Detach(). девайс на работе. W>Хотя цикл W>{ W>Data = ... W>VariantClear(); W>} W>тоже протекал.
pNWA->SCPI->TRIGger->SEQuence->SINGle();
CComVariant Data = pNWA->SCPI->CALCulate[1]->SELected->DATA->FDATa;
pNWA->SCPI->TRIGger->SEQuence->SINGle();
VARIANT Data = pNWA->SCPI->get_CALCulate(1)->SELected->DATA->get_FDATa();
Неплохо бы посмотреть, как выглядит описания метода FDATa или get_FDATa. Иногда возврат выглядит как _variant_t, тогда вариант с VARIANT просто неверен.