用GDI+的资源如何释放
用GDI+的资源怎么释放
先声明上面的函数是循环运行的,每次运行程序后内存就一直已4K的增长量上升,但把上面那段函数全部删除后就没有上升的情况了,于是我就知道是上面的资源没有释放,但是GDI+怎么释放资源呢 MSDN没有说可以用C++释放啊 ,貌似只有C#才能释放吧,那咋办,,,,求解。。
------解决方案--------------------
m_strRoleObjName.AllocSysString()
要释放
- C/C++ code
void RoleObj::RoleInfo() { int nrightorleft; m_Direction==right?nrightorleft=20:nrightorleft=30; //头上的角色名 Font font(L"Arial", 10); PointF pointf(m_nPosX+20+nrightorleft,m_nPosY); SolidBrush brush(Color::Black); Graphics gp(m_ParentWnd->m_memDC); gp.DrawString(m_strRoleObjName.AllocSysString(),m_strRoleObjName.GetLength(),&font,pointf,&brush); //脚下的阴影 //Graphics g(m_ParentWnd->m_memDC); Color color(128,0,0,0); SolidBrush solibrush(color); gp.FillEllipse(&solibrush,m_nPosX+nrightorleft,m_nPosY+85,50,20); }
先声明上面的函数是循环运行的,每次运行程序后内存就一直已4K的增长量上升,但把上面那段函数全部删除后就没有上升的情况了,于是我就知道是上面的资源没有释放,但是GDI+怎么释放资源呢 MSDN没有说可以用C++释放啊 ,貌似只有C#才能释放吧,那咋办,,,,求解。。
------解决方案--------------------
m_strRoleObjName.AllocSysString()
要释放