c++高手进!在线等!

来源:百度知道 编辑:UC知道 时间:2024/06/22 07:30:58
...
DWORD bfOffBits;
DWORD bfSize;
WORD bfType;
WORD bfReserved1;
WORD bfReserved2;
LPBITMAPINFO lpbitmapinfo;
LPVOID pbitsrc;

.
.
.
.

void CFdsaView::OnFileSave()
{
// TODO: Add your command handler code here
CString filename;//定义一个字符串变量
///文件对话框类
CFileDialog dlg(FALSE,NULL,"*.bmp",OFN_OVERWRITEPROMPT,"BMP(*.bmp)|*.bmp||",NULL);
if(dlg.DoModal()==IDOK)//显示文件对话框
filename = dlg.GetPathName();//取得文件名file:
//以/上为显示选择位图文件对话框。
CFile file(filename,CFile::modeCreate|CFile::modeWrite|CFile::shareDenyNone); //file://保存文件
file.Write(&bfType,sizeof(WORD));
file.Write(&bfSize,sizeof(DWORD));
file.Write(&bfReserved1,sizeof(WORD));
file.Write(&bfReserved2,sizeof(WORD));//
file.Write(&bfOffBits,sizeof(DWORD));//写图象数据开始处到文件开始处的偏移距离
file.WriteHuge(lpbitmapinfo,bfOffBits- 14);//写调色板信息及BITMAPINFO结构
file.Writ

断言失败多数是错误指针问题;楼主能不能把Debug Assertion Failed后面的信息列出来,好确定是哪个断言失败了

file.WriteHuge(lpbitmapinfo,bfOffBits- 14);//写调色板信息及BITMAPINFO结构
file.WriteHuge(pbitsrc,bfSize-bfOffBits);//写图象数据
这两句要确定 lpbitmapinfo,pbitsrc 这两个指针已经正确初始化过了

if(dlg.DoModal()==IDOK)//显示文件对话框
filename = dlg.GetPathName();//取得文件名file:
CFile file(filename,CFile::modeCreate|CFile::modeWrite|CFile::shareDenyNone);
这两句如果对话诓不是返回OK,文件继续打开就要断言失败

函数本身没什么问题,是程序中某个断言宏出了问题,调试一下程序 找出那个宏再看看。
我对图像比较感兴趣,请将整个工程发到我邮箱里
chenze0403@yahoo.com.cn