Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.191.176.194] |
|
Сообщ.
#1
,
|
|
|
Работаю с векторныь рефлектометром CABAN
В доках пример на VC (СОМ интерфейс) Если убрать лишнее получится #import "C:\RVNA\RVNA.exe" no_namespace IRVNAPtr pNWA; // Pointer to COM object of RVNA.exe CComVariant Data; // Variable for measurement data CoInitialize(NULL); pNWA.CreateInstance(__uuidof(RVNA)) pNWA->SCPI->TRIGger->SEQuence->SINGle(); Data = pNWA->SCPI->CALCulate[1]->SELected->DATA->FDATa; CComSafeArray<double> mSafeArray; mSafeArray.Attach(Data.parray); ........................................ mSafeArray.Detach(); pNWA.Release(); CoUninitialize(); Пишу на BCB6 #include "R54Lib_TLB.h" // вместо #import "C:\RVNA\RVNA.exe" VARIANT Data; IRVNAPtr pNWA; pNWA = CoRVNA::Create(); pNWA->SCPI->TRIGger->SEQuence->SINGle(); Data = pNWA->SCPI->get_CALCulate(1)->SELected->DATA->get_FDATa(); TSafeArrayT <double,VT_R8,1> mSafeArray; mSafeArray.Attach(Data.parray); ........................................ mSafeArray.Detach(); Снятие данных постоянно в цикле. Через полчаса прога вылетает с сообщением о нехватке памяти. Утечка видимо происходит на на строчке выделенной болдом С COM работаю впервые, поэтому не сильно разбираюсь. Прошу помощи. |
Сообщ.
#2
,
|
|
|
Первое, что приходит в голову, и трудно предложить что-либо ещё взамен – пройти отладчиком итерацию цикла и выяснить, действительно ли деструкторы авто-объектов освобождают COM-объекты, сводя счётчики их ссылок к нулю. Не исключено, что где-то закралась неточность в подсчёте ссылок.
|