VC++中function does not take 9 parameters类似错误解答

来源:百度知道 编辑:UC知道 时间:2024/06/20 05:35:35
/*执行脏纸编码嵌入E_DIRTY_PAPER*/
void CDib::doE_DIRTY_PAPER(int m,double tcc, double r,int seed,int N)
{
for(int i=0;i<160*120;i++)
wr[i]=i;
BYTE *p_data; //指向原图象指针
long height=this->GetHeight();//获得宽
long wide=this->GetWidth();//获得高
p_data =this->GetData();
E_DIRTY_PAPER(p_data,wide,height,m,tcc,r,seed,N,wr);
}
出现下面问题:
error C2660: 'E_DIRTY_PAPER' : function does not take 9 parameters

还有这个:

/*执行D_DIRTY_PAPER检测函数*/
int CDib::doD_DIRTY_PAPER(double tcc,int seed,int N)
{
for(int i=0;i<160*120;i++)

BYTE *p_data; //指向原图象指针
long height=this->GetHeight();//获得宽
long wide=this->GetWidth();//获得高
p_data =this->GetData();
D_DIRTY_PAPER(p_data,wide,height,tcc,seed,N);

}
则出现:
error C2065: 'p_data' : undeclared identifier
error C2440: '=' : cannot convert from 'unsigned char *' t

1.第一个错误是说E_DIRTY_PAPER这个函数的参数个数不是9个,用右键跳到它的声明上看看;
Error Message
'function' : function does not take number parameters

The function is called with an incorrect number of parameters.

再有种可能就是存在2个E_DIRTY_PAPER函数;

2.第二个错误是for(int i=0;i<160*120;i++)后面是不是少了{ }或者;,相当于BYTE *p_data;的定义变成循环内部的了;

3.This conversion requires a reinterpret_cast, a C-style cast or function-style cast
这个不知道说的是哪句?