gpt4 book ai didi

delphi - LARGE_INTEGER 还是 TLargeInteger?

转载 作者:行者123 更新时间:2023-12-03 14:59:33 33 4
gpt4 key购买 nike

Windows.pas中,有:

  LARGE_INTEGER = record
case Integer of
0: (
LowPart: DWORD;
HighPart: Longint);
1: (
QuadPart: LONGLONG);
end;

TLargeInteger = Int64;

我看到一些最初声明为 LARGE_INTEGER 的 Windows 函数和结构成员已被转换为 TLargeInteger,例如:

  function QueryPerformanceCounter(var lpPerformanceCount: TLargeInteger): BOOL;
stdcall;

另一个例子是:

  WIN32_STREAM_ID = record
dwStreamId : DWORD;
dwStreamAttributes: DWORD;
Size : TLargeInteger;
dwStreamNameSize : DWORD;
cStreamName : array[0..0] of WCHAR;
end;

TLargeInteger 能否替代 Windows 头文件中的每个函数参数和结构成员的 LARGE_INTEGER

最佳答案

您始终可以在 API 翻译中安全地互换使用这两种类型。不过,显然,一旦为特定函数选择了一种类型,无论何时调用该函数,都必须坚持使用该类型。

  • 使用TLargeInteger可以更轻松地分配值,因为无需引用记录字段。
  • 使用 LARGE_INTEGER 可以更轻松地分为低位和高位 32 位部分。

既然编译器对 64 位整数有很好的支持,那么使用 TLargeInteger 可能更有意义。因为,通常不需要将 64 位整数分为低位和高位部分。但早在编译器无法处理 64 位整数类型时,就没有其他选项可以处理 64 位整数。

关于delphi - LARGE_INTEGER 还是 TLargeInteger?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13468718/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com