以下代码产生错误:
error C2296: '*' : illegal, left operand has type '__int64 *'|
错误行(< ------)
DWORD increasefactor = 1;
__int64 initialtime64 = 0;
__int64 initialoffset64 = 0;
...
BOOL WINAPI QueryPerformanceCounter_Detour(__int64 *lp)
{
BOOL ret = QueryPerformanceCounter_Trampoline(lp);
lp = ((lp-initialtime64)*increasefactor)+initialoffset64; // <------
return ret;
}
我的错在哪里?
提前多多感谢。
答案 0 :(得分:5)
lp
是指向__int64
的指针,而不是实际的__int64
。表达式
lp = ((lp-initialtime64)*increasefactor)+initialoffset64;
尝试将整数分配给指向整数的指针,更不用说你稍后在同一行中从同一指针中减去这一事实。
您需要使用*
运算符取消引用指针,以获取lp
指向的值。
*lp = ((*lp-initialtime64)*increasefactor)+initialoffset64;
您可能还应该阅读C ++ / C中的指针。