想在IAR EWARM环境下编一个小程序,读取电脑硬盘上的一个bmp图片文件,程序大概如下:
#include <stdio.h>
char BmpBuffer1[1024*80];
char LoadBmpFile(char * file_name)
{
FILE *hfbmp;
long bmp_file_length;
int ret;
if((hfbmp = fopen(file_name, "rb")) == NULL)
{
return NULL;
}
ret = fseek(hfbmp, 0L, SEEK_END);
bmp_file_length = ftell(hfbmp);
ret = fseek(hfbmp, 0L, SEEK_SET);
fread(BmpBuffer1, sizeof(char), bmp_file_length, hfbmp);
fclose(hfbmp);
return 1;
}
void main(void)
{
.......
LoadBmpFile("d:\\test1.bmp");
......
}
问题是每次运行到bmp_file_length = ftell(hfbmp);的时候,返回值总是-1,接着执行fread函数的时候就不能返回了。我对stdio.h里的库函数用法不是太熟悉,估计是用法有问题,请熟悉的高手帮忙解答,谢谢。 |