【问题标题】:Casting with TULargeInteger in delphi 10.2 Tokyo differ from previous version在 delphi 10.2 Tokyo 中使用 TULargeInteger 进行铸造与以前的版本不同
【发布时间】:2017-10-28 21:20:37
【问题描述】:

使用 TULargeInteger 进行转换,新编译器 10.2 缺少属性 LowPart 和 HighPart。

uses Winapi.Windows;

    function RetLargeInt: Int64;
    var
      ALow: DWORD;

    begin
      {Do Something
        With ALow
      }
      TULargeInteger(Result).LowPart := ALow; {Missing 'LowPart'}
    end;

    procedure AProc;
    var
     ALocalInt: Int64;
    begin
      ALocalInt := RetLargeInt;
      {Do Something}
    end;

【问题讨论】:

  • 或者使用 Int64Rec

标签: delphi delphi-10.2-tokyo


【解决方案1】:

在 10.2 Tokyo 中,TULargeInteger 的声明由:

TULargeInteger = ULARGE_INTEGER;

到:

TULargeInteger = UInt64;

这意味着您无法再访问公开LowPartULARGE_INTEGER 记录字段。

ULARGE_INTEGER = record
    case Integer of
    0: (
      LowPart: DWORD;
      HighPart: DWORD);
    1: (
      QuadPart: ULONGLONG);
  end;

您可以将代码更改为使用ULARGE_INTEGER

ULARGE_INTEGER(Result).LowPart := ALow;

【讨论】:

    猜你喜欢
    • 2017-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多