[fpc-pascal] Dynamic arrays in FP

Jilani Khaldi jilani.khaldi1 at virgilio.it
Thu May 5 11:44:23 CEST 2005


Hi All,

I have written a little library in C (compiled in as a DLL) to use it in 
Free Pascal and  Delphi applications. While the code (below) works with 
Delphi (7), I get an Access Violation using FPC (1.98). Perhaps I am 
missing something.
Any hint? Thanks!

program fpc_dll;
{$H+}{$MODE OBJFPC}

uses
  sysutils;

type
 myarray = array of double;
// if I declare "myarray = array[0..9] of double;" the code runs as 
expected.

function get_array(a, b: myarray; size: integer; value: double): 
integer; cdecl; external 'mylib.dll';
// extern "C"  __cdecl __declspec(dllexport) int get_array(double a[], 
double b[], int size, double val);

var
  x, y, z: double;
  t: integer;
  i, kk, qq: integer;
  mat1, mat2: pmyarray;
  st: string;
begin
  kk := 10;
  SetLength(mat1,kk);
  SetLength(mat2,kk);
  for i := 0 to kk-1 do
  begin
    mat1[i] := i+1;
    st := FloatToStr(mat1[i]);
    writeln(st);
  end;
  qq := get_array(mat1,mat2,kk,3.14);
  st := IntToStr(qq);
  writeln(st);
  for i := 0 to kk-1 do
  begin
    st := FloatToStr(mat1[i]);
    writeln(st);
  end;
  st := '------------------------------';
  writeln(st);
  for i := 0 to kk-1 do
  begin
    st := FloatToStr(mat2[i]);
    writeln(st);
  end;

  SetLength(mat1,0);
  SetLength(mat2,0);
end.

jk

-- 
// Jilani KHALDI
*** K-Book
Interactive Scientific & Technical Pubblications
http://jkhaldi.oltrelinux.com





More information about the fpc-pascal mailing list