首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

2012-03-26 
该内存不能为“read”0x00403103 指令引用的 0xcdcdcdd5 内存,该内存不能为“read”编译,链接都通过了,一

该内存不能为“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变量用来表示是否打开图片了`

热点排行