Скажем, у меня есть следующие:Понимание операторов присваивания CComBSTR
BSTR myBSTR = SysAllocString(L"MYBSTR");
CComBSTR myCComBSTR = myBSTR;
ли myCComBSTR
взять на себя ответственность myBSTR
и освободить его, когда он выходит из области видимости? Или он делает копию myBSTR
и создает утечку памяти, если я не освобожу myBSTR
?
Если это вызывает утечку памяти, что является наиболее эффективным способом ее устранения? (myBSTR
будет принят в к функции как BSTR
и я хочу, чтобы сохранить его как CComBSTR
внутренне)
В чем разница между CComBSTR :: Attach и CComBSTR :: AssignBSTR? –
@ mvdavid7, AssignBSTR не передает права собственности и просто делает копию. Прикрепите права на передачу на 'CComBSTR' и не делайте копии. – JaredPar