我在做一个可视组件,它里面包含有几个继承自IUnknown的接口变量。
测试时,如果程序只加入一个该组件,则不有错;否则将在程序关闭时出错。
因为我知道:
由IUnknown继承的接口变量在作为局部变量时会在函数结束时会自动释放。
如以下程序:
 function TestProc: HRESULT;
var
  lpDD : IDirectDraw;
begin
  Result := DirectDrawCreate(nil, lpDD, nil);
  if Result<>0 then raise Exception.Create('Failed create!');
  Result := lpDD.QueryInterface(IID_IDirectDraw2, MyDirectDraw);  lpDD._Release; // 这一行代码是多余的,将导致出错
end;
所以我没加入任何释放代码。
请问一下到底是不是还要加入释放代码?
或者是IUnknown的其它问题,请指教,多谢!!!.
我搞得头都大了:(