Bonjour tout le monde

voila j'ai codé une algorithme sous Delphi , je l'ai coder d'une facon qu'on puisse l'utiliser un peut pres comme un composant (il suffit de l'ajouter dans les uses) , maintenant j'aimerais porter mon projet sous d'autre platformes(linux et MACos) pour cela j'ai choisssi FreePascal pour sa compabilitee avec Delphi et sa presence sous plusieurs platformes.

le code a l'aire portable, la compatibilitee FreePascal / delphi aussi , seulement il reste un probleme, apres avoir indiquer a FreePascal d'accepter la syntaxe Delphi , il reste une chose que FreePascal n'accepte pas :
Je declare une procedure de cette maniere :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
procedure xorblocks(var a,b : array of byte; size :integer);
var
  i :integer;
begin
  for i:=0 to size-1 do b[i]:=a[i] xor b[i];
end;
maintenant j'ai un pointeure de type PByte qui pointe sur un tableau de byte , exmple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
block : array [0..511] of byte;
P       : PByte;
begin
 P :=@block;
for i:=0 to N do 
  begin
     xorbloks(P^,P^,16);
     inc(p,16);
  end;
end;
ce code et accepter sous Delphi , tandis que sous FreePascal non. Bien sure ici j'ai utiliser un pointeur sur byte comme parammetre , mais des fois j'utilise un tableau de Byte.
La solution que j'ai envisagé est de declarer les parametres de ma fonction comme des Var (sans type precis), cela m'empecherat donc de traiter les parametres comme des tableaus .
Ma question est donc : y'a til une option a indiquer au compilateur que j'aurait oblier , ou si non y aurait il une autre solution que celle que j'ai indiquer (car le probleme ne se pose pas que pour cette fonction , il y en a d'autres) ?

Merci donc d'avance et bonne journee