这是网上的一段程序,关于树视控件自行排序。在VS2010能正常调试运行,但在VS2019调试时出错!直接运行(不调试)正常。
int CALLBACK MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
//把该函数换成自己的规则
CTreeCtrl* pmyTreeCtrl = (CTreeCtrl*)lParamSort;
CString strItem1 = pmyTreeCtrl->GetItemText((HTREEITEM)lParam1);
CString strItem2 = pmyTreeCtrl->GetItemText((HTREEITEM)lParam2);
return strItem2.Compare(strItem1);
}
TVSORTCB tvs;
tvs.hParent = TVI_ROOT;
tvs.lpfnCompare = MyCompareProc;
tvs.lParam = (LPARAM)&m_TreeCtrl;
m_TreeCtrl.SortChildrenCB(&tvs);
其中一句出错:CString strItem1 = pmyTreeCtrl->GetItemText((HTREEITEM)lParam1);
错误信息:0x731F83DC (comctl32.dll)处(位于 Radar.exe 中)引发的异常: 0xC0000005: 读取位置 0x57D8F569 时发生访问冲突。