[fpc-pascal] Interfaces works in FPC 2.6.4 but not in 3.0.2

Graeme Geldenhuys mailinglists at geldenhuys.co.uk
Sun May 7 00:37:56 CEST 2017


Hi,

I have CORBA style interfaces. My projects using them work perfectly in
FPC 2.6.4, but if I compile the project with FPC 3.0.2, I never get
a interface reference.

My class hierarchy is as follows:

  {$interfaces corba}

  ICmdLineParams = interface
    ['{EDF51E67-1119-11E6-B131-C86000E37EB0}']
    ...
  end;

  TfpgCmdLineParams = class(TObject, ICmdLineParams)
    ...
  end;

  TfpgApplicationBase = class(TfpgComponent, ICmdLineParams)
  private
    FCmdLineParams: TfpgCmdLineParams;
    property CmdLineParams: TfpgCmdLineParams read FCmdLineParams implements ICmdLineParams;
  end;

  TfpgApplication = class(TfpgApplicationBase)
    ...
  end;


Then the usage in my application:

var
  cmd: ICmdLineParams;
begin
  if Supports(fpgApplication, ICmdLineParams, cmd) then  // <<<< Never works
  begin
    ...
  end; 
end.


fpgApplication is a global instance of TfpgApplication.

The line marked with "Never works" never works with FPC 3.0.2, but
it does with FPC 2.6.4.

Can anybody explain this?


Regards,
  Graeme

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp



More information about the fpc-pascal mailing list