[fpc-devel] How to call (access) to an external procedure!

Geno Roupsky groupsky at nola7.com
Tue Jan 31 08:27:51 CET 2006


This particular function could be declared as this:

TEnvironment = class
public
  class function GetEnvironment(const Name: PChar): PChar; cdecl;
end;

class function GetEnvironment(const Name: PChar): PChar; cdecl; external
'c' name 'getenv';

Of course this is not very useful but the idea for methods is this. Just
keep in mind that methods have a hidden parameter Self pointing to the
object. When method is declared as cdecl it is the first parameter.

Tia,

Geno Roupsky

В вт, 2006-01-31 в 10:05 +0330, Amir Aavani написа:
> dear friends,
> I know that if want to use an external variable/procedure in fpc, i 
> should use the following code:
> 
> function GetEnvironment (const Name: PChar): PChar; cdecl; external 'c' 
> name 'getenv';
> 
> but how could i add for example  GetEnvironment function to a class 
> (TEnvironment)!
> Is there any good (OO) way?
> 
> Is it a good idea to use a following method:
> 
> TGetEnvironmentFunction= function : PChar;
> TEnvironment= class (TObject)
> private
>   ...
> public
>   GetEnvironment: TGetEnvironment;
>   procedure SetGetEnvironmentFunction (AFunction: TGetEnvironmentFunction);
>   ...
> end;
> 
> procedure TEnvironment.SetGetEnvironmentFunction (AFunction: 
> TGetEnvironmentFunction);
> begin
>   GetEnvironment:= AFunction;
> end;
> 
> 
> 
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel
> 




More information about the fpc-devel mailing list