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