Según este archivo que me tomé la libertad de buscar:
http://mailz.googlecode.com/svn/trunk/SimpleXml.pas, los tipos POctet y PChars están declarados así en esa unidad:
Código Delphi
[-]
type
PChars = ^TChars;
TChars = packed record a, b, c, d: Char end;
POctet = ^TOctet;
TOctet = packed record a, b, c: Byte; end;
El problema es que, debido a la introducción del Unicode, en Delphi 2009 el tipo Char (tradicionalmente de un byte de tamaño y equivalente a AnsiChar) pasa a ser un WideChar (de dos bytes), haciendo que la estructura compacta TChars deje de ser de sólo 4 bytes (el tamaño de un LongWord).
La solución, está en
esta recomendación del Dr. Bob:
Cita:
Delphi 2009 Character types are Char, AnsiChar and WideChar, where Char defaults to WideChar. In previous versions of Delphi, a Char would be equivalent to an AnsiChar. In order to ensure existing code compiler without changes in behaviour, change Char to AnsiChar (as well as PChar to PAnsiChar).
|
De tal manera que esa parte del código quede como lo dejaron aquí:
http://www.google.com/codesearch/p?h.../XStrUtils.pas
Código Delphi
[-]
type
PChars = ^TChars;
TChars = packed record a, b, c, d: AnsiChar end;
POctet = ^TOctet;
TOctet = packed record a, b, c: Byte; end;
Con ese pequeño cambio ya no te aparecerá el error.
Saludos.
Al González.
P.D. Ahora veo que ya nos diste una referencia para encontrar el archivo, confirmándose lo del
Char.