Das Problem hab ich ja schon erkannt. Die Frage ist wie es zu lösen ist. Ein IWasAnders Interface einführen? Aber wie sieht dann Foos Erzeugung aus?
erzeugung ist genauso. Du darfst es halt keinen Referenzzeiger mehr zuweisen:
Delphi-Quellcode:
var
f : IMachtBuh;
begin
f := Foo.Create;
Hier nehm ich mir of
COM als vorbild und leg mit eine Co-Funktion an und die Implementierende Klasse soweit verstecken das keiner mehr darauf kommt diese entsprechend über Refernzzeiger zu verwenden:
Delphi-Quellcode:
funktion CoFoo: IMachtBuh;
begin
result = Foo.Create;
end;
Windows Vista - Eine neue Erfahrung in Fehlern.