小弟我刚学MFC,自己写的一个俄罗斯方块的小程序!下面是那段出错的代码:     
   CClientDC dc(this);
CDC MemDC;
MemDC.CreateCompatibleDC(&dc);
CBitmap * OldBitmap=MemDC.SelectObject(&m_btBitmap[m_nKindOfBitmap++]);
for(int i=0;i<4;i++)
for(int j=0;j<4;i++)
{
if(m_nShaps[m_nKindOfTetri][m_nKindOfShap][i][j]==1)
dc.BitBlt((Point.x+16*j),(Point.y+16*j),16,16,&MemDC,0,0,SRCCOPY);
}
MemDC.SelectObject(OldBitmap);
其中Point是第一个方块的坐标,m_nKindOfTetri为方块的种类,m_nKindOfShap为方块的形状,两个都是int型变量。编译没有问题,可是运行时老是说有一段内存不能读,各位帮帮忙,谢谢了!

解决方案 »

  1.   

    是不是DC资源用完没有没有释放啊,它会占内存。 可以用 delete 或 release 试一下
      

  2.   

    你这个m_nShaps数组,有4维吗?太复杂了吧?很容易出错,最好换一种结构。
      

  3.   

    发贴于:2007-10-21 10:02
    ------是你for()循环搞错了吧..!for(int   i=0;i <4;i++) 
    for(int   j=0;j <4;i++) 
    改:
    for(int   i=0;i <4;i++) 
    for(int   j=0;j <4;j++)