读书人

该内存不能为“read”,该怎么解决

发布时间: 2012-03-26 15:46:55 作者: rapoo

该内存不能为“read”
"0x00403103 "指令引用的 "0xcdcdcdd5 "内存,该内存不能为“read”
编译,链接都通过了,一运行就出错

class CMyShowView : public CView
{
public:
CDib* CBmpNew;


void CMyShowView::OnDraw(CDC* pDC)
{
CMyShowDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CBmpNew=&pDoc-> CBmp;
int bitmapHeight=CBmpNew-> GetHeight();//只要加上这句就会出现
//内存不能“read”
}
CBmp是在CDoc类中定义的
void CMyShowDoc::OnFileOpen()
{
// TODO: Add your command handler code here
CFileDialog dlg(TRUE,_T( "BMP "),_T( "*.BMP "),OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,_T( "位图文件(*.BMP)|*.BMP| "));
if(IDOK==dlg.DoModal ())
filename.Format ( "%s ",dlg.GetPathName() );
CBmp.LoadFile(filename);
}
头文件
class CMyShowDoc : public CDocument
{

public:
CString filename;
CDib CBmp;

[解决办法]
ondraw调用的时候CDoc类里面还没有打开,所以CBmpNew-> GetHeight();才会出错的吧,加个bool变量用来表示是否打开图片了`

读书人网 >VC/MFC

热点推荐