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 :
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 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;
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.
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;
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
Partager