我使用 MFC 虚拟列表控件来提高性能,并处理GetDispInfo(NMHDR* pNMHDR, LRESULT* pResult)来填充 ListCtrl。该方法中的相关代码如下:
if (pItem->mask && LVIF_TEXT) {
switch(pItem->iSubItem)
{
case 0:
lstrcpy(pItem->pszText, rLabel.m_strText);
break;
case 1:
sprintf(pItem->pszText, "%d", p.o_Value);
break;
default:
ASSERT(0);
break;
}
}
在这里,当我使用 lstrcpy() 时,当我向下/向上滚动时,我得到很多异常,说test_list_control.exe 中 0x7c80c741 的第一次机会异常:0xC0000005:访问冲突写入位置 0xb70bf2ac。这些消息出现在调试输出中。但程序不会崩溃。谁能解释一下这里的问题以及我应该如何克服它?
rLabel 是我之前声明的 CLabelItem。
谢谢!