CCS5.5 环境下,读写可变文件名的文件,比如说,0001.bmp,0002.bmp,0003.bmp,0004.bmp,...,文件名前缀同可变量i变化。
代码如下,该代码在VS2008下能正常工作,但是不能在CCS5.5下正常工作。
跟踪代码,发现代码进入ReadBmpFile()函数后,
就看不到完整的文件路径,只能看到部分路径,文件名及部分文件路径丢失,以至于fopen()函数不能正常打开文件,程序就死在该函数了。
有没有这份方面经验的,请给予指导。
for(i=0;i<PIC_NUM;i++)
{
sprintf(as8Name, ".//..//..//TestData//img//%04d.bmp", i+1);
sprintf(as8OutName, ".//..//..//TestData//out//%04d.bmp", i+1);
ReadBmpBwPic(as8Name,gaaau8BwPic[0]);
}
void ReadBmpBwPic(S8 *pucFileName, U8 (*pau8Data)[COL])
{
S16 i,j,dHigh,dWidth;
ReadBmpFile(pucFileName, &dHigh, &dWidth, (U8*)gaaaReadBmpData[0][0]);
for (i = 0; i < ROW; i++)
{
for (j = 0; j < COL; j++)
{
//RGB 转换。
}
}
}
void ReadBmpFile(S8 *pucFileName, S32 *pdHigh, S32 *pdWidth, U8 *pucData)
{
FILE *fpOut = NULL;
T_BmpFileHeader tFileHeader;
T_BmpInfoHeader tInfoHeader;
S32 dHighIdx;
S32 dWidthIdx;
fpOut = fopen(pucFileName, "rb+");
fread((U8*)(&tFileHeader) + 2, 14, 1, fpOut);
fread(&tInfoHeader, 40, 1, fpOut);
for (dHighIdx = 0; dHighIdx < (S32)tInfoHeader.biHeight; dHighIdx++)
{
for (dWidthIdx = 0; dWidthIdx < (S32)tInfoHeader.biWidth; dWidthIdx++)
{
//文件读写
}
}
*pdHigh = tInfoHeader.biHeight;
*pdWidth = tInfoHeader.biWidth;
fclose(fpOut);
}