在 delphi 10.2 Tokyo 中使用 TULargeInteger 进行转换与之前的版本不同
Casting with TULargeInteger in delphi 10.2 Tokyo differ from previous version
使用新编译器 10.2 缺少属性 LowPart 和 HighPart 的 TULargeInteger 进行转换。
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;
在 10.2 Tokyo 中,TULargeInteger
的声明已更改为:
TULargeInteger = ULARGE_INTEGER;
至:
TULargeInteger = UInt64;
这意味着您无法再访问公开 LowPart
的 ULARGE_INTEGER
记录字段。
ULARGE_INTEGER = record
case Integer of
0: (
LowPart: DWORD;
HighPart: DWORD);
1: (
QuadPart: ULONGLONG);
end;
您可以更改代码以改用 ULARGE_INTEGER
:
ULARGE_INTEGER(Result).LowPart := ALow;
使用新编译器 10.2 缺少属性 LowPart 和 HighPart 的 TULargeInteger 进行转换。
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;
在 10.2 Tokyo 中,TULargeInteger
的声明已更改为:
TULargeInteger = ULARGE_INTEGER;
至:
TULargeInteger = UInt64;
这意味着您无法再访问公开 LowPart
的 ULARGE_INTEGER
记录字段。
ULARGE_INTEGER = record case Integer of 0: ( LowPart: DWORD; HighPart: DWORD); 1: ( QuadPart: ULONGLONG); end;
您可以更改代码以改用 ULARGE_INTEGER
:
ULARGE_INTEGER(Result).LowPart := ALow;