error C2040: “b”: “BYTE *”与“int”的间接寻址级别不同解决办法

error C2040: “b”: “BYTE *”与“int”的间接寻址级别不同
C/C++ code


CFile file;
    CString strvalue,str;
    char ctemp[260];
    file.Open(FileName,CFile::modeRead);
    BYTE* buf;
    BYTE *b = new BYTE[260];
    buf = new BYTE[260];
    file.Read(buf,260);
    for(int i=0;i<260;i++)
    {        
           b[i] = 256 - buf[i];
    }
    file.Close();
    file.Open(FileName,CFile::modeWrite);
    file.Write(b,260);
    file.Close();



C++在VS2008编译错误:
error C2040: “b”: “BYTE *”与“int”的间接寻址级别不同

怎么回事?

------解决方案--------------------
b[i] = 256 - buf[i];//需要进行强制类型转换下的。转换成(int)或者(unsigned int)等