关于网友提出的“ 可能时候内存越界的问题”问题疑问,本网通过在网上对“ 可能时候内存越界的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 可能时候内存越界的问题
描述: 现象:程序运行一段时间后 界面上的toolbar 有几率消失不见。。(找不到规律。。可能1天有个2-3次)
下面只调用一次
if(!m_wndtoolbar.CreateEx( this,
TBSTYLE_FLAT ,
WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC,
CRect(4,4,144,16))||!m_wndtoolbar.LoadToolBar(IDR_TOOLBAR3) )
{
TRACE0("failed to create toolbar\n");
return;// FALSE;
}
因为要根据运行的状态设定不同的toolbar图标 我写了一个 ButtonState(int iKey)
if(iKey==1)
{
m_wndtoolbar.Invalidate();
iUserState=1;
m_wndtoolbar.GetToolBarCtrl().SetImageList(&imageList1);
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
}
if(iKey==0)
{
m_wndtoolbar.Invalidate();
iUserState=0;
m_wndtoolbar.GetToolBarCtrl().SetImageList(&imageList0);
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
}
//。。。一共4种
imageList 是程序一开始就初始化的 一共4个 供调用
所有关于m_wndtoolbar 的操作都在上面。。
我循环数万次调用 ButtonState 这个函数。。没有任何问题。。所以应该不是内存泄漏
MptTree m_MyTree;
CListCtrl m_MyList;
CEdit m_MyEdit;
CToolBar m_wndtoolbar;
.h文件中是这样声明的。。。现在怀疑是前面的对象抢占了wndtoolbar 的内存空间。。。不知道这样想有没道理。。
MptTree 是继承CTreeCtrl的类。。。现在在查有没写脑残的地方。。。
不知道大侠们有没有什么建议~~~
解决方案1: 排除法解决问题,分离部分代码独立测试!
解决方案2: 偶也来接分~~
~\(≧▽≦)/~~
解决方案3: 接分
以上介绍了“ 可能时候内存越界的问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2503889.html