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

SuperObject 1.2.4 Изменения!!! (Компилируется в Лазарусе 1.2.4 + FreePascal 2.6.4 и Delphi 2006)
  1. В интерфейсной части:  
  2.   
  3. {$IFDEF FPC}  
  4.   function QueryInterface({$IFDEF FPC_HAS_CONSTREF}constref{$ELSE}const{$ENDIF} iid: tguid; out obj): longint;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};  
  5. {$ELSE}  
  6.   function QueryInterface(const IID: TGUID; out Obj): HResult; virtual; stdcall;  
  7. {$ENDIF}  
  8.   
  9. В имплементации:  
  10. {$IFDEF FPC}  
  11. function TSuperObject.QueryInterface({$IFDEF FPC_HAS_CONSTREF}constref{$ELSE}const{$ENDIF} iid: tguid; out obj): longint;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};  
  12. {$ELSE}  
  13. function TSuperObject.QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;  
  14. {$ENDIF}  
  15.   
  16. И еще 2 метода подобным способом:  
  17.   
  18. In TSuperObject, replace lines 655 and 656  
  19. function _AddRef: Integer; virtual; stdcall;  
  20. function _Release: Integer; virtual; stdcall;     
  21. with  
  22. function _AddRef: Integer; virtual; {$IFDEF UNIX}cdecl{$ELSE}stdcall{$ENDIF};  
  23. function _Release: Integer; virtual; {$IFDEF UNIX}cdecl{$ELSE}stdcall{$ENDIF};  
  24.   
  25. Also replace line 5218  
  26. function TSuperObject._AddRef: Integer; stdcall;   
  27. with  
  28. function TSuperObject._AddRef: Integer; {$IFDEF UNIX}cdecl{$ELSE}stdcall{$ENDIF};  
  29.   
  30. and line 5223  
  31. function TSuperObject._Release: Integer; stdcall;  
  32. with  
  33. function TSuperObject._Release: Integer; {$IFDEF UNIX}cdecl{$ELSE}stdcall{$ENDIF};  
Читать полностью >>>