2009-09-22 36 views
2

我轉換GraphicEx項目至2009年德爾福遷移到德爾福2009年 - 無效的類型轉換錯誤

我有麻煩,在單位Scanf_c.pas轉換下面的過程。這裏的問題是:

With TscRec(FType) do begin 

F型是整數,TscRec定義:

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

看來,這個代碼是在2007年德爾福工作正常,但我在2009年德爾福編譯它有問題。編譯器錯誤是「Invalid Typecase」。這個問題是由類型轉換FType造成的,TSype是一個記錄的TScRec。

有人在這裏有與德爾福2009年相同的問題,並有一個解決方案。

THX

回答

12

「CHAR」 現在是一個2字節的數據類型。如果將聲明更改爲「ansichar」,會發生什麼情況? (這相當於Delphi < = 2007中的「char」)。

+1

+1 - 它與AnsiChar一起工作 – 2009-09-22 08:21:51

+3

刪除「瘋狂猜測」,因爲這實際上是答案。 :)使用Char的第一個分支將是5個字節長,這將不再是一個整數的大小(4) – 2009-09-22 08:32:19