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

Amir Aavani Aavani at iust.ac.ir
Tue Jan 31 09:05:16 CET 2006


Thanks Geno
that works, but could you tell me what should i do for an external variable,
var environ: ppchar; cvar; external;


Geno Roupsky wrote:

>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';
>  
>
  function TEnvironment.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
>>
>>    
>>
>
>_______________________________________________
>fpc-devel maillist  -  fpc-devel at lists.freepascal.org
>http://lists.freepascal.org/mailman/listinfo/fpc-devel
>  
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20060131/3fb88ecc/attachment.html>


More information about the fpc-devel mailing list