0
max735
19.10.11
✎
15:42
|
Может быть кто-то сталкивался с такой проблемой:
1. В 1С загружаю внешнюю компоненту.
2. Из внешней компоненты, через интерфейс 1С pBackConnection вызываю метод 1С:
DISPID dispid;
BSTR meth_to_do = L"AppDispatch";
hr=m_iConnect->GetIDsOfnames(IID_NULL,&meth_to_do,1,LOCALE_USER_DEFAULT,$dispid);
VARIANT v1;
VariantInit(&v1);
DISPPARAMS params={0,0,0,0};
hr=m_iConnect->Invoke(dispid,IDD_NULL,0,DISPATCH_PROPERTYGET,¶ms,&v1,NULL,NULL);
Далее идет нужная обработка, в конце выполняю код:
v1.pdispVal->Release();
или так : VariantClear(&v1);
Проблема заключается в том, что если выполнить освобождение v1, то 8-ка выгружается нормально, а 7-ка нет. И наоборот, если не освободить v1, то 8-ка виснет, а 7-ка выгружается нормально.
Еще одно замечание, при выгрузке 7-ки , она ,если не освобождать v1, лишний раз вызывает Done(). (И вообще, 7-ка запрашивает большее количество раз интерфейсы, чем 8-ка). Понятно, что где-то зависает ссылка, но где? Может кто-то сталкивался с подобным?
Заранее спасибо.
|
|