- 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 系统编程的练习,但我没有完全理解 LARGE_INTEGER 和 OVERLAPPED 结构。例如,我在 main 中定义了以下结构。第一个结构用于跟踪记录数。第二个用于记
如何将整数转换为 LARGE_INTEGER? 例如,当我想立即触发一个定时器时: LARGE_INTEGER zero; zero.QuadPart = 0; KeSetTimer(pTimer
我试图在 C++ 中增加 LARGE_INTEGER,但出现以下错误。 Error C2397: conversion from 'LONGLONG' to 'DWORD' requires a na
我在 Win32 下的 MS dev studio 中将一些代码从 C 转换为 C++。在旧代码中,我使用 QueryPerformanceCounter() 进行了一些高速计时,并对获得的 __in
在Windows.pas中,有: LARGE_INTEGER = record case Integer of 0: ( LowPart: DWORD; H
我有一个更大的整数,它是由一个运算形成的 __int64 c = (bytesTransferred.HighPart*2^31 + bytesTransferred.LowPart) * 100/(
当我遇到 LARGE_INTEGER 的定义时。我发现了一些问题: typedef union _LARGE_INTEGER { struct { DWORD LowPart;
用C++和一些Winapi的东西,遇到了这个人: #if defined(MIDL_PASS) typedef struct _LARGE_INTEGER { #else // MIDL_PASS t
我正在使用 QueryPerformanceCounter(); 获取一个数字,用作要包含在文件名中的唯一时间戳。 LARGE_INTEGER performanceCount; QueryPerfo
函数原型(prototype): foo(_out_ PSIZE_T arg); 用法: LARGE_INTEGER offset = {0}; foo(&offset.QuadPart); // I
我正在研究一个转换为 Linux 的 Windows 代码和这个答案 here .Linux 中 LARGE_INTEGER 和 BYTE 之间可能没有单射数据类型,因此可能需要考虑特殊情况。 这两种
我正在尝试打印文件的大小和名称。 LARGE_INTEGER filesize; filesize.LowPart = ... ... printf("%ld %s\n", filesize.Quad
我有一个 CUDA VIDEO ENCODING 的示例代码,它最初是为 windows 编写的,在准备好 Make 文件并尝试编译它之后,由于 HRESULT 、 LARGE_INTEGER 和 D
我有以下代码: QueryPerformanceCounter(&timeStart); winMain::render(); //do stuff QueryPerformanceCounter(&
我是一名优秀的程序员,十分优秀!