I was able to use a C library by creating the following unit, the hardest part 
was getting variable types to match.   Perhaps this example of linking a C 
library to Free Pascal will help.

 

James

 

 

Unit InpOut32;

 

Interface

   Function IsInpOutDriverOpen:Boolean;{$Ifndef Win32} cdecl {$Else} stdcall 
{$EndIf};

   Function IsXP64Bit:Boolean;{$Ifndef Win32} cdecl {$Else} stdcall {$EndIf};

   Function  Inp32(Port:LongInt):Byte;{$Ifndef Win32} cdecl {$Else} stdcall 
{$EndIf};

   Procedure Out32(Port:LongInt; Value:Byte);{$Ifndef Win32} cdecl {$Else} 
stdcall {$EndIf};

   Function DlPortReadPortUChar(Port:LongInt):Char;{$Ifndef Win32} cdecl 
{$Else} stdcall {$EndIf};

   Procedure DlPortWritePortUChar(Port:LongInt; Value:Char);{$Ifndef Win32} 
cdecl {$Else} stdcall {$EndIf};

   Function DlPortReadPortUShort(Port:LongInt):Word;{$Ifndef Win32} cdecl 
{$Else} stdcall {$EndIf};

   Procedure DlPortWritePortUShort(Port:LongInt; Value:Word);{$Ifndef Win32} 
cdecl {$Else} stdcall {$EndIf};

 

Implementation

   Function IsInpOutDriverOpen; {$Ifndef Win32} cdecl {$Else} stdcall {$EndIf}; 
external 'inpout32.DLL';

   Function IsXP64Bit; {$Ifndef Win32} cdecl {$Else} stdcall {$EndIf}; external 
'inpout32.DLL';

   Function Inp32; {$Ifndef Win32} cdecl {$Else} stdcall {$EndIf}; external 
'inpout32.DLL';

   Procedure Out32; {$Ifndef Win32} cdecl {$Else} stdcall {$EndIf}; external 
'inpout32.DLL';

   Function DlPortReadPortUChar; {$Ifndef Win32} cdecl {$Else} stdcall 
{$EndIf}; external 'inpout32.DLL';

   Procedure DlPortWritePortUChar; {$Ifndef Win32} cdecl {$Else} stdcall 
{$EndIf}; external 'inpout32.DLL';

   Function DlPortReadPortUShort; {$Ifndef Win32} cdecl {$Else} stdcall 
{$EndIf}; external 'inpout32.DLL';

   Procedure DlPortWritePortUShort; {$Ifndef Win32} cdecl {$Else} stdcall 
{$EndIf}; external 'inpout32.DLL';

 

End.

 

 

 

From: fpc-pascal-boun...@lists.freepascal.org 
[mailto:fpc-pascal-boun...@lists.freepascal.org] On Behalf Of Sandro Cumerlato
Sent: Thursday, September 15, 2016 12:52 PM
To: FPC-Pascal users discussions <fpc-pascal@lists.freepascal.org>
Subject: Re: [fpc-pascal] Reed-Solomon algorithm

 

A quick search on Google pointed me to:

https://github.com/catid/longhair

It is a C library implementing the Reed Solomon algorithm. 

I think that it's possible to build a dll from sources and create the 
corresponding fpc binding from the .h include file.

Best regards. 

Sandro Cumerlato 

 

On 15 Sep 2016 18:29, "duilio foschi" <octopush...@gmail.com 
<mailto:octopush...@gmail.com> > wrote:

can somebody point me to the algorithm above written in Pascal ?

As an alternative, can somebody point me to the algorithm above
written in some DLL I could use from FPC ?

Thank you

Peppe Polpo
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org 
<mailto:fpc-pascal@lists.freepascal.org> 
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

 

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to