E2091 Paires Segment/Offset non prises en charge dans Delphi 32 bits (Delphi)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Messages d'erreur et d'avertissement (Delphi)


Le code 32 bits n'utilise plus l'adressage par segment/offset (utilisé par le code 16 bits).

Dans les versions 16 bits de Object Pascal, les paires segment/offset étaient utilisées pour déclarer des variables absolues, et comme arguments à la fonction standard Ptr.

Notez que les adresses absolues ne doivent pas être utilisées dans des programmes en mode protégé 32 bits. Des fonctions Win32 API doivent alors être appelées à leur place :

program Produce;

var
  VideoMode : Integer absolute $0040 $0049;

begin
  Writeln( Byte(Ptr($0040,$0049)^) );
end.

La version suivante compile, mais n'exécute pas. Vous devez soigneusement éviter les adresses absolues.

program Solve;

var
  VideoMode : Integer absolute $0040*16+$0049;

begin
  Writeln( Byte(Ptr($0040*16+$0049)^) );
end.