作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在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/
在Windows.pas中,有: LARGE_INTEGER = record case Integer of 0: ( LowPart: DWORD; H
我是一名优秀的程序员,十分优秀!