用VC编了一段代码 表示其中一段提示有错误
void BmpOrder(void){
T_Message RecvMsg;
INT32U color1 = 0xff00ff00, i, j;
INT32U color2 = 0x900000ff, color3=0xff001800, *pImgpixel, *pImgGhost,*pMenuP,*pMenuG;
INT32 inc=1;
float alpha;
OSD_RECT rect,rect2;
pImgpixel = (INT32U*)DTOS_DRV_AllocateMemory(160*500*sizeof(INT32U)); //定义一个160×500的内存 用于存储菜单栏的像素
pImgGhost = (INT32U*)DTOS_DRV_AllocateMemory(160*500*sizeof(INT32U));
pMenuP = (INT32U*)DTOS_DRV_AllocateMemory(200*280*sizeof(INT32U)); //用于子菜单标志的显示
pMenuG = (INT32U*)DTOS_DRV_AllocateMemory(200*280*sizeof(INT32U));
GFMReadRectangle(20,120, 160, 500,(INT8U*)pImgpixel); //读取第一个菜单栏标记的像素
alpha = ((color2&0xff000000)>>24)/(float)256.0; //混合版 用于显示菜单标记的特殊显示
rect.x = 0; //菜单栏操作的矩形框
rect.y = 0;
rect.width = 160;
rect.height = 500;
rect2.x=0; //子菜单操作的矩形框
rect2.y=0;
rect2.width=200;
rect2.height=280;
while(1)
{
memcpy(pImgGhost, pImgpixel, 160*500*sizeof(INT32U)); //将子菜单的像素数据copy到pImgGost中
index=0; //用于菜单标记的特殊色显示
for(i=0;i<45;i++)//混合标记区域 X为区域控制变量
{
for(j=0;j<160;j++)
{
pImgGhost[i*160+x+j] = mixColor(pImgpixel[i*160+x+j], color2, alpha);
index++;
}
}
GFMWriteRectangle(20,120,rect,(INT8U*)pImgGhost,160,500); //重绘菜单区域
DTOS_DRV_ReceiveMessage( Test_queueID, &RecvMsg); //接受用户消息 用于用户的操作
switch(RecvMsg.param0)
{
case MSG_KeyUP: //up键按下
{
mark=1;
if(count>(page-1)*9) //count 为图片索引
{ //当count大于0时 每按下一次 索引减1
count--;
}
else //当count=0时直接将索引号变成最后一位
{
count=page*9;
}
if(x>0) //x变量用与菜单标记区域的控制 实现菜单栏的动态显示
{
nbmp--;
x-=7200;
}
else
{
nbmp=9;
x=64800;
}
break;
}
case MSG_KeyDOWN: //down键按下
{
mark=1;
if(count<page*9) //count 为图片索引
{ //当count大于0时 每按下一次 索引减1
count++;
}
else //当count=0时直接将索引号变成最后一位
{
count=(page-1)*9;
}
if(x<=64000)
{
nbmp++;
x+=7200;
}
else
{
nbmp=1;
x=0;
}
break;
}
我编译了以后,显示的是 warning C4013: 'mixColor' undefined; assuming extern returning int
不知道我的问题出在哪里,求教