仮想照明コントロールを使用しており、マップからデータを取得しています。私の問題は、コードを実行するとリストが正常に表示されることですが、マウスカーソルがリストコントロールに移動するか、下にスクロールしようとすると、マップ/セットイテレーターが参照解除可能ではないというデバッグアサーションエラーが発生します。私の GetDispInfo() メソッドは次のとおりです。
void CListCtrlTestDlg::GetDispInfo(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
LV_ITEM* pItem = &(pDispInfo)->item;
map<int, Error_Struct>::iterator it = Error_Map.find((pItem->iItem) + 1);
int iErrCode = (*it).second.i_ErrorCode;
CString cError = (*it).second.c_Error;
switch(pItem->iSubItem)
{
case 0:
sprintf_s(pItem->pszText, 10, "[ %d ]", iErrCode);
break;
case 1:
sprintf_s(pItem->pszText, 100, "%s", cError);
break;
}
*pResult = 0;
}
また、マウス ポインターがリスト コントロールの上にある場合、output.c ファイルで以下に示す行からのアクセス違反を示して、プログラムが再びクラッシュします。
#else /* _UNICODE */
if (_putc_nolock(ch, f) == EOF)
誰も同じ経験をしましたか?ここで何が間違っているのか、どうすればこの問題を解決できますか?
ありがとう!