Function prototype definition

The funciton is defined as:

LONG WINAPI InterlockedCompareExchange (
    __inout LONG volatile *Destination,
    __in    LONG Exchange,
    __in    LONG Comperand
    );

In Visual 6.0, I use it as:
      int nRet = (int)::InterlockedCompareExchange((PVOID*)pI, (PVOID)nNew, (PVOID)nOld);

Compiler has no complain.

In Visual 2005, Compiler complains as such:

1>d:\develop\3.0\commonlibs\base\asm.h(47) : error C2664: 'InterlockedCompareExchange' : cannot convert parameter 1 from 'PVOID *' to 'volatile LONG *'

What should I do?

Thanks,
XT

xtran888Asked:
Who is Participating?
 
alb66Connect With a Mentor Commented:
int nRet = (int)::InterlockedCompareExchange((LONG*)pI, (LONG)nNew, (LONG)nOld);
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.