Cześć, sytuacja jest taka:
type
IMyInterface = interface(IUnknown)[GUID]
procedure DoSth();
end;
TMyObj = class(TInterfacedObject, IMyInterface)
public
procedure DoSth();
end;
Teraz tworzę obiekt:
FMyObj:=TMyObj.Create();
I teraz tak. W niektórych aplikacjach w debuggerze po najechaniu na FMyObj, widzę coś w sensie: "FMyObj(adres) as IMyInterface", a w niektórych: "FRefCount(0)". Pytanie pierwsze - skąd się pojawia różnica? Pytanie drugie - czy to jest normalne, żeby po utworzeniu RefCount był równy 0? Wg mnie powinien być 1. No bo teraz, jeśli przypiszę to gdzieś, np:
myObj2:=FMyObj
to mam RefCount na 1. Teraz jeśli zrobię:
myObj2:=nil
to mam RefCount na 0 i siłą rzeczy FMyObj musi zostać zwolniony. Dobrze rozumiem?