MFC 怎么创建空白BMP文件

MFC 如何创建空白BMP文件?
本帖最后由 VisualEleven 于 2014-05-08 10:18:13 编辑
要在MFC中创建一副空白位图,怎么实现。要直接用向文件内写数据的办法,我试了好久没成功,大家看一下下面的程序有何问题

      FILE *pFile=fopen("1.bmp","wb");
unsigned char *pBmpBuf;//位图数据
RGBQUAD *pColorTable;//调色板数据

for(int i=0;i<12800;i++)
pBmpBuf[i]=0xFF;//建立一320*320像素的位图,位深为1,则共需12800字节来存储像素数据

BITMAPFILEHEADER       bmfHdr;    //文件头               
//位图文件头结构   
BITMAPINFOHEADER       bi;//信息头

pColorTable[0].rgbBlue=0;//颜色表数据
pColorTable[0].rgbGreen=0;
pColorTable[0].rgbGreen=0;
pColorTable[0].rgbReserved=0;
pColorTable[1].rgbBlue=255;
pColorTable[1].rgbGreen=255;
pColorTable[1].rgbGreen=255;
pColorTable[1].rgbReserved=0;

bi.biSize                         =   sizeof(BITMAPINFOHEADER);   
bi.biWidth                       =   320;   
bi.biHeight                     =320;   
bi.biPlanes                     =   1;   
bi.biBitCount                   =   1;   
bi.biCompression             =   BI_RGB;   
bi.biSizeImage                 =   0;   
bi.biXPelsPerMeter           =   0;   
bi.biYPelsPerMeter           =   0;   
bi.biClrUsed                   =   0;   
bi.biClrImportant             =   0;   
bmfHdr.bfType   =   0x4D42;     //   "BM"   
//dwDIBSize=12826;       
bmfHdr.bfSize   =   12862;   
bmfHdr.bfReserved1   =   0;   
bmfHdr.bfReserved2   =   0;   
bmfHdr.bfOffBits   =   62;  

 fwrite(&bmfHdr, sizeof(BITMAPFILEHEADER),1, pFile);
 fwrite(&bi, sizeof(BITMAPINFOHEADER),1, pFile);
 fwrite(pColorTable, sizeof(RGBQUAD),2, pFile);
 fwrite(pBmpBuf, 12800, 1, pFile);
 fclose(pFile);

------解决方案--------------------
unsigned char *pBmpBuf;//位图数据
RGBQUAD *pColorTable;//调色板数据
--------------------------------
基本语法问题, 这2个都没分配内存,怎么可以往里写数据?

动态分配,或者
unsigned char pBmpBuf[320*320*n];

------解决方案--------------------
int a=sizeof(pBmpBuf);
指针的 size 可不就是 4 吗。
直接 int a=128;