3

使用 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;
4

1 回答 1

7

在 10.2 Tokyo 中,声明TULargeInteger已更改为:

TULargeInteger = ULARGE_INTEGER;

至 :

TULargeInteger = UInt64;

这意味着您不能再访问ULARGE_INTEGER公开的记录字段LowPart

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

您可以更改要使用的代码ULARGE_INTEGER

ULARGE_INTEGER(Result).LowPart := ALow;
于 2017-05-28T13:59:15.743 回答