请高手指点一下。代码写在一个function里就可以,而分成两个就不行。
h7223 2004-04-14 12:19:51 向高手请教,代码写在一个function里就可以,而分成两个就不行。
代码如下:
1,static UInt8* pJpegBuff;//declare
//声明全局变量
2,pJpegBuff=(UInt8*)MemPtrNew(MAX_JPEG_SIZE);//alloc memory
//获取内存
3,static void ProcRevDatas()
{
UInt8 buffer[1024];
UInt16 bufferLen=sizeof(buffer);
UInt16 curAddrLen=sizeof(curAddr);
char msg[64];
UInt16 i;
UInt16 iPos=633;
ReceiveUDP(svrSocket, &curAddr,&curAddrLen,
(UInt8*)buffer, &bufferLen);
IntegrateJpg(buffer,iRevLength);
//写在这里就可以拷贝数据给pJpegBuff,
//将buffer传给IntegrateJpg()就不能访问buffer的数据。
//for(i=0;i<bufferLen - 12;i++)//PIC_DATA_HEADER=12
// pJpegBuff[i+iPos]=buffer[i+12];
//StrPrintF(msg," %s ","IntegrateJpg OK!!");
//WinDrawChars (msg, StrLen(msg), 0, 100);
}
4,static void IntegrateJpg(UInt8 *PicData, UInt16 iRevLength)
{
UInt16 i;
UInt16 iPos=633;
char msg[64];
for(i=0;i<iRevLength - 12;i++)//PIC_DATA_HEADER=12
pJpegBuff[i+iPos]=PicData[i+12];
//被ProcRevDatas() call 时这里会报内存不可访问PicData错误,请高手指点一下。
StrPrintF(msg," %s ","IntegrateJpg OK!!");
WinDrawChars (msg, StrLen(msg), 0, 100);
}