我使用MFC虛擬列表控件來增強性能,並且我處理GetDispInfo(NMHDR * pNMHDR,LRESULT * pResult)來填充ListCtrl。該方法中的相關代碼如下:lstrcpy()在Visual C++代碼中導致異常
如果(pItem->掩模& & 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(),當我srolling向下/向上,我收到了很多例外情況,說:test_list_control.exe中0x7c80c741的第一次機會異常:0xC0000005:訪問衝突寫入位置0xb70bf2ac。這些消息出現在調試輸出中。但該程序不會崩潰。任何人都可以請解釋什麼這裏的事情,我應該如何克服?
rLabel是我早些時候聲明的CLabelItem。
謝謝!
謝謝凱特,你的回答和鏈接幫助我克服了我的疑惑...... :) – Izza 2010-07-09 03:45:07