gpt4 book ai didi

c++ - 操纵 LARGE_INTEGERS

转载 作者:IT老高 更新时间:2023-10-28 22:32:07 27 4
gpt4 key购买 nike

我在 Win32 下的 MS dev studio 中将一些代码从 C 转换为 C++。在旧代码中,我使用 QueryPerformanceCounter() 进行了一些高速计时,并对获得的 __int64 值进行了一些操作,特别是减号和除号。但是现在在 C++ 下,我不得不使用 LARGE_INTEGER,因为这是 QueryPerformanceCounter() 返回的。但是现在在我尝试对值做一些简单的数学运算时,我得到了一个错误:

错误 C2676:二进制“-”:“LARGE_INTEGER”未定义此运算符或转换为预定义运算符可接受的类型

我尝试将变量转换为 __int64 但随后得到:

错误 C2440:“类型转换”:无法从“LARGE_INTEGER”转换为“__int64”

我该如何解决这个问题?

谢谢,

最佳答案

LARGE_INTEGER 是一个 64 位整数和一对 32 位整数的并集。如果要对其中一个执行 64 位算术运算,则需要从 union 内部选择 64 位 int。

LARGE_INTEGER a = { 0 };
LARGE_INTEGER b = { 0 };

__int64 c = a.QuadPart - b.QuadPart;

关于c++ - 操纵 LARGE_INTEGERS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1395361/

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