我正在将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位算术运算,则需要从并集内部选择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/