Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problemas migracion Delphi 7 a 2010 (https://www.clubdelphi.com/foros/showthread.php?t=69345)

edgwin 11-08-2010 23:05:11

Problemas migracion Delphi 7 a 2010
 
Que tal amigos del foro.

Estoy migrando mis aplicaciones de Delphi 7 a Delphi 2010, tengo un problema con una unidad que verifica el CRC de los archivos (envio y recibo archivos). Si mi programa lo compilo en Delphi 7 me genera una cadena CRC (ej: 2DEI23D) y si lo compilo en Delphi 2010 me genera una cadena CRC completamente diferente (ej: 5G856TI2).

Para muesta basta un boton. Adjunto un pequeño programita para probarlo.

¿Alguien sabe porque sucede esto?

FGarcia 11-08-2010 23:25:27

¿Consideraste que D2010 usa UNICODE y que trata las cadenas de modo diferente?

Te recomiendo la lectura de Delphi Handbook 2009 de Marco Cantu ahi trata sobre esto.

No te doy link pues es un ebook que se compra.


¡¡¡Ahi tu sabes!!!

donald shimoda 11-08-2010 23:28:06

Cita:

Empezado por FGarcia (Mensaje 373248)
¿Consideraste que D2010 usa UNICODE y que trata las cadenas de modo diferente?

Te recomiendo la lectura de Delphi Handbook 2009 de Marco Cantu ahi trata sobre esto.

No te doy link pues es un ebook que se compra.


¡¡¡Ahi tu sabes!!!


Yo le pegue una mirada al código y no veo ningún string ni char implicados en el crimen (el único que vi es el nombre de archivo, por tanto..). Asi que sumo que pueda ser algún otro cambio en la rtl maybe. Ahora no puedo dedicarle mas, pero si puedo mas tarde lo chequeo.

edgwin 11-08-2010 23:40:37

Gracias por responder ...

Estoy conciente del uso del Unicode en Delphi 2010 es por eso que intente hacer un cambio ....

Código Delphi [-]
....
function StreamCRC32(const Stream: TStream; var CRC: Cardinal;
                   const InitCRC:boolean; const Progress: TProgress): Integer;
var Buffer: PChar; --->> AQUI LO CAMBIE POR PANSICHAR
    Count: Integer;
    Size: Integer;
    TotalSize: Integer;
...

Pero no resulto.

Alguna idea?

donald shimoda 11-08-2010 23:41:44

Cita:

Empezado por edgwin (Mensaje 373251)
Gracias por responder ...

Estoy conciente del uso del Unicode en Delphi 2010 es por eso que intente hacer un cambio ....

Código Delphi [-]
....
function StreamCRC32(const Stream: TStream; var CRC: Cardinal;
                   const InitCRC:boolean; const Progress: TProgress): Integer;
var Buffer: PChar; --->> AQUI LO CAMBIE POR PANSICHAR
    Count: Integer;
    Size: Integer;
    TotalSize: Integer;
...

Pero no resulto.

Alguna idea?


Ese se me paso, pero ahi esta el tema seguro...

vi que hay mas PChar , cambialos todos por PAnsiChar en princiipio, pero analiza que estan haciendo, perdon pero estoy a las corridas ahora no puedo chequearlo..

Suerte!

Neftali [Germán.Estévez] 12-08-2010 12:23:00

Prueba cambiando la línea:

Código Delphi [-]
   PChar(p):=PChar(p)+1;

Por esta en el procedimiento CalcCRC:

Código Delphi [-]
  PAnsiChar(p):=PAnsiChar(p)+1;

edgwin 12-08-2010 17:20:08

Muchas gracias a todos.

Cambie todos los PChar por PAnsiChar y funcionó a la perfeccion.

Saludos!


La franja horaria es GMT +2. Ahora son las 00:48:31.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi