fread函数读入图片数据到内存及用send函数发送时的参数问题,请指教
问题描述:
功能:读取bmp图片到内存,通过socket函数中的send方法将数据传送到接收端
1、
unsigned char *pBmpBuf; //读入图像数据的指针
bool readBmp(char *bmpName)
{
//二进制读方式打开指定的图像文件
FILE *fp=fopen(bmpName,"rb");
if(fp==0) return 0;
......
//申请位图数据所需要的空间,读位图数据进内存
pBmpBuf=new unsigned char[lineByte * bmpHeight];
fread(pBmpBuf,1,lineByte * bmpHeight,fp); //第一个参数类型为:unsigned char *pBmpBuf
//关闭文件
fclose(fp);
return 1;
}
int socket()
{
......
send(sockClient,pBmpBuf,sizeof(pBmpBuf),0); //send方法的第二个参数应该是const char *
printf("************Send Successfully!************\n");
closesocket(sockClient);
WSACleanup(); // 终止对套接字库的使用
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
socket();
system("pause");
return 0;
}
问题是: fread(pBmpBuf,1,lineByte * bmpHeight,fp);方法中pBmpBuf为unsigned char *pBmpBuf
但在socket函数的send方法里 send(sockClient,pBmpBuf,sizeof(pBmpBuf),0); //pBmpBuf参数应该是const char *
报错为:
错误error C2664: “send”: 不能将参数 2 从“unsigned char *”转换为“const char *”
应该如何修改,才能将图片数据读入的内存pBmpBuf通过send方法发送出去?
请指点,谢谢