Подключение SuperObject к FreePascal для MacOS

SuperObject 1.2.4 Изменения!!! (Компилируется в Лазарусе 1.2.4 + FreePascal 2.6.4 и Delphi 2006)
В интерфейсной части:

{$IFDEF FPC}
  function QueryInterface({$IFDEF FPC_HAS_CONSTREF}constref{$ELSE}const{$ENDIF} iid: tguid; out obj): longint;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
{$ELSE}
  function QueryInterface(const IID: TGUID; out Obj): HResult; virtual; stdcall;
{$ENDIF}

В имплементации:
{$IFDEF FPC}
function TSuperObject.QueryInterface({$IFDEF FPC_HAS_CONSTREF}constref{$ELSE}const{$ENDIF} iid: tguid; out obj): longint;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
{$ELSE}
function TSuperObject.QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
{$ENDIF}

И еще 2 метода подобным способом:

In TSuperObject, replace lines 655 and 656
function _AddRef: Integer; virtual; stdcall;
function _Release: Integer; virtual; stdcall;   
with
function _AddRef: Integer; virtual; {$IFDEF UNIX}cdecl{$ELSE}stdcall{$ENDIF};
function _Release: Integer; virtual; {$IFDEF UNIX}cdecl{$ELSE}stdcall{$ENDIF};

Also replace line 5218
function TSuperObject._AddRef: Integer; stdcall; 
with
function TSuperObject._AddRef: Integer; {$IFDEF UNIX}cdecl{$ELSE}stdcall{$ENDIF};

and line 5223
function TSuperObject._Release: Integer; stdcall;
with
function TSuperObject._Release: Integer; {$IFDEF UNIX}cdecl{$ELSE}stdcall{$ENDIF};
Читать полностью >>>