[求助]请教一个位图纹理的问题
程序中要用到位图作为OpenGL纹理,只要有其中的位图数据就行,定义了一个函数BYTE* GetBMPBits(LPCTSTR Resource, int* nWidth, int* nHeight)
{
BITMAPFILEHEADER bmHeader;
FILE* file = fopen(Resource, "r");
fread(&bmHeader, sizeof(BITMAPFILEHEADER), 1, file);
fseek(file, sizeof(BITMAPFILEHEADER)+4, SEEK_SET);
fread(nWidth, 4, 1, file);
fread(nHeight, 4, 1, file);
int nBits = bmHeader.bfSize - bmHeader.bfOffBits;
BYTE* Bytes = new BYTE[nBits];
fseek(file, bmHeader.bfOffBits, SEEK_SET);
fread(Bytes, nBits, 1, file);
return Bytes;
}
另一个函数中调用是这样的
{。。。。。。
pBytes = GetBMPBits("res\\EARTH.BMP", &nWidth, &nHeight);
。。。。。。
delete pBytes;
}
编译运行正常,但是直接从debug目录运行exe会出错,我试着把这两个函数删掉就没事了,我想可能是Bytes或pBytes的问题,上面的函数该怎么修改呢?