m_ptArray[0].x= m_scSmallCube[i][j][k].m_ptPoint[1].x;
m_ptArray[1].x= m_scSmallCube[i][j][k].m_ptPoint[3].x;
m_ptArray[2].x= m_scSmallCube[i][j][k].m_ptPoint[7].x;
m_ptArray[3].x= m_scSmallCube[i][j][k].m_ptPoint[5].x;
m_ptArray[0].y= m_scSmallCube[i][j][k].m_ptPoint[1].y;
m_ptArray[1].y= m_scSmallCube[i][j][k].m_ptPoint[3].y;
m_ptArray[2].y= m_scSmallCube[i][j][k].m_ptPoint[7].y;
m_ptArray[3].y= m_scSmallCube[i][j][k].m_ptPoint[5].y;
m_scSmallCube[i][j][k].m_sfFace[0].m_rFace.CreatePolygonRgn(m_ptArray,3,ALTERNATE);
代码中,m_ptArray数组是POINT结构体数组,m_rFace成员是CRgn类对象,m_scSmallCube[i][j][k].m_sfFace[0].m_rFace.CreatePolygonRgn(m_ptArray,3,ALTERNATE);
这句导致Debug Assertion Failed!异常,提示..\mfc\wingdi.cpp Line:1157
找到该文件 相关内容如下:(黑体部分为1157行)
BOOL CGdiObject::Attach(HGDIOBJ hObject)
{
ASSERT(m_hObject == NULL); // only attach once, detach on destroy
if (hObject == NULL)
{
return FALSE;
}
// remember early to avoid leak
m_hObject = hObject;
CHandleMap* pMap = afxMapHGDIOBJ(TRUE); // create map if not exist
ASSERT(pMap != NULL);
pMap->SetPermanent(m_hObject, this);
return TRUE;
}
请问各位,为什么会出现这个异常?
在release下就不会出现异常,请问怎么回事?为什么debug就不行?如果用release,忽略此异常,是否影响程序运行?谢谢各位,急拜托!!!
m_ptArray[1].x= m_scSmallCube[i][j][k].m_ptPoint[3].x;
m_ptArray[2].x= m_scSmallCube[i][j][k].m_ptPoint[7].x;
m_ptArray[3].x= m_scSmallCube[i][j][k].m_ptPoint[5].x;
m_ptArray[0].y= m_scSmallCube[i][j][k].m_ptPoint[1].y;
m_ptArray[1].y= m_scSmallCube[i][j][k].m_ptPoint[3].y;
m_ptArray[2].y= m_scSmallCube[i][j][k].m_ptPoint[7].y;
m_ptArray[3].y= m_scSmallCube[i][j][k].m_ptPoint[5].y;
m_scSmallCube[i][j][k].m_sfFace[0].m_rFace.CreatePolygonRgn(m_ptArray,3,ALTERNATE);
代码中,m_ptArray数组是POINT结构体数组,m_rFace成员是CRgn类对象,m_scSmallCube[i][j][k].m_sfFace[0].m_rFace.CreatePolygonRgn(m_ptArray,3,ALTERNATE);
这句导致Debug Assertion Failed!异常,提示..\mfc\wingdi.cpp Line:1157
找到该文件 相关内容如下:(黑体部分为1157行)
BOOL CGdiObject::Attach(HGDIOBJ hObject)
{
ASSERT(m_hObject == NULL); // only attach once, detach on destroy
if (hObject == NULL)
{
return FALSE;
}
// remember early to avoid leak
m_hObject = hObject;
CHandleMap* pMap = afxMapHGDIOBJ(TRUE); // create map if not exist
ASSERT(pMap != NULL);
pMap->SetPermanent(m_hObject, this);
return TRUE;
}
请问各位,为什么会出现这个异常?
在release下就不会出现异常,请问怎么回事?为什么debug就不行?如果用release,忽略此异常,是否影响程序运行?谢谢各位,急拜托!!!
crgn我没用过,看了下msdn,觉得你可以用copyrgn:
CRgn rgn; //局部变量
rgn.CreatePolygonRgn(point, 2, ALTERNATE);
m_rFace.CopyRgn(&rgn);
这个说明程序要求m_hObject是NULL而它不是,那么就一定是已经创建过了。
有些函数在程序启动时要执行好几次,所以会有这种情况。
其实只要跟踪一下就清楚了。
谢谢,呵呵,分给你!