【问题标题】:Migrate to Delphi 2009 - Invalid Typecast error迁移到 Delphi 2009 - 无效的类型转换错误
【发布时间】:2009-09-22 08:07:58
【问题描述】:

我正在将 GraphicEx 项目转换为 Delphi 2009。

我在转换单元Scanf_c.pas 中的以下过程时遇到问题。问题来了:

  With TscRec(FType) do begin

FType 是一个整数,定义了 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;

似乎这段代码在delphi 2007中运行良好,但我在Delphi 2009中编译它时遇到问题。编译器错误是“Invalid Typecase”。问题是由于将整数的 FType 类型转换为记录的 TScRec 造成的。

这里有人对 Delphi 2009 有同样的问题并有解决方案吗?

谢谢

【问题讨论】:

    标签: delphi delphi-2009 graphicex


    【解决方案1】:

    "char" 现在是 2 字节数据类型。如果将声明更改为“ansichar”会发生什么? (这相当于 Delphi

    【讨论】:

    • 去掉“疯狂的猜测”,因为这实际上就是答案。 :) 使用 Char 时,第一个分支将是 5 个字节长,并且不再是整数 (4) 的大小
    猜你喜欢
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 2017-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多