tinterface1.pp 611 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. { %VERSION=1.1 }
  2. { %SKIPTARGET=macos Crashes when assembling, linking or running}
  3. {$mode objfpc}
  4. type
  5. IInterface = interface(IUnknown)
  6. procedure mydo;
  7. end;
  8. TMyClass = class(TInterfacedObject, IInterface)
  9. procedure mydo;virtual;
  10. end;
  11. TMyClass2 = class(TMyClass)
  12. i : integer;
  13. end;
  14. var
  15. l : longint;
  16. procedure tmyclass.mydo;
  17. begin
  18. l:=1;
  19. end;
  20. var
  21. c: TMyClass;
  22. i: IInterface;
  23. c2 : TMyClass;
  24. begin
  25. c := TMyClass.Create;
  26. i := c;
  27. l:=0;
  28. i.mydo;
  29. if l<>1 then
  30. halt(1);
  31. c2 := TMyClass2.Create;
  32. i := c2;
  33. l:=0;
  34. i.mydo;
  35. if l<>1 then
  36. halt(1);
  37. end.