我需要将一个旧项目移植到最新的视觉工作室,但它有一些非常糟糕的代码,我不知道如何解决。
如果有这个功能:
void CBuffer::AddData( LPBYTE lpData, u_long uDataSize, u_long &uRemnant )
{
int cb;
LPBYTE ptr = GetWritableBuffer( (int *)&cb );
cb = ( cb < uRemnant? cb: uRemnant );
ASSERT( ptr + cb <= m_lpBufMax );
memcpy( (void*)ptr, &lpData[uDataSize - uRemnant], cb );
m_pTail = ptr + cb;
uRemnant -= cb;
}
哪些提示
buffer.cpp(90): warning C4458: declaration of 'cb' hides class member
这里int cb覆盖u_long由类CBuffer定义的CB。
有没有办法知道在此之后应该使用哪个 cb?
LPBYTE ptr = GetWritableBuffer( (int *)&cb );
局部变量总是隐藏类成员变量或全局变量。因此,在此方法中,始终使用局部变量int cb
。