Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, <Аноним>, Вы писали:
А>>Этот самый GUI использует COM объект с методом, в который
А>>передается другой COM объект ([in] параметр)
А>>Так вот бормановские врапперы похоже вызывают на один Release
А>>меньше, чем положено и в итоге имею кучу leak'ов.
OE>да, тоже наступали на это дело, если передавать параметром указатель на интерфейс, дебилдер в реализации метода лепит вокруг него свою обертку и при заключении переданного указателя на интерфейс в эту обертку делает AddRef(), но в деструкторе обертки никаких Release() нету. Пришлось вставлять в каждый такой дебилдерный метод принудительный Release() для соблюдения баланса
Блин, а у меня таких мест уже довольно много.
А вот BCB6 похоже генерит нормальные врапперы и как теперь писать
"портабельный" в мире дебилдера код?
Мало того, что принудительный Release() нужен,
так еще и в таком вот стиле.
#if __BORLANDC__ < 0x0560 // BCB5
pMyComObj->Release();
#endif
Замечательно