2009-09-22 13 views
2

Je convertir projet GraphicEx à Delphi 2009.Migrer vers Delphi 2009 - erreur non valide Typecast

J'ai du mal à convertir la procédure suivante dans l'unité Scanf_c.pas. Voici le problème:

With TscRec(FType) do begin 

FType est un entier et TscRec est défini:

TscRec = packed record // Has size of an integer 
     Case byte of 
     0: (Typ : byte; Size : char; Flags : word;); 
     1: (SizeType : word; iFlags : smallInt;); 
     end; 

Il semble que ce code fonctionne bien dans delphi 2007, mais j'ai problème dans la compilation en Delphi 2009 L'erreur du compilateur est "Invalid Typecase". Le problème est dû au typage FType qui est un entier à TScRec qui est un enregistrement.

Est-ce que quelqu'un a le même problème avec Delphi 2009 et a une solution?

Thx

Répondre

12

"char" est maintenant un type de données de 2 octets. Que se passe-t-il si vous changez la déclaration en "ansichar"? (C'est l'équivalent de "char" dans Delphi < = 2007).

+1

+1 - cela fonctionne avec AnsiChar –

+3

Supprimez le "deviner", parce que c'est la réponse. :) Avec Char la première branche aurait une longueur de 5 octets, et ce ne serait plus la taille d'un entier (4) –

Questions connexes