GetListCtrl().InsertItem()问题!
LV_ITEM lvitem;
lvitem.mask = LVIF_TEXT | LVIF_IMAGE;
lvitem.iItem = 0;
lvitem.iSubItem = 0;
lvitem.pszText = strTime.GetBuffer(strTime.GetLength());
GetListCtrl().InsertItem(&lvitem);
每次一执行到最后一句,就弹出对话框报错说:
遇到问题,问要调试还是关闭,如果选择调试,就说内存访问违例,某内存不能为read.
请问各位大虾们,我的程序可能会是哪里有错呢?
问题点数:20、回复次数:6Top
1 楼laiyiling(陌生人[MVP])回复于 2004-09-04 18:55:16 得分 2
CListCtrl &listctrl=GetListCtrl();
listctrl.InsertItem(&lvitem);Top
2 楼Mackz(在相互)回复于 2004-09-04 20:03:45 得分 2
lvitem.pszText = strTime.GetBuffer(strTime.GetLength());
----->
lvitem.pszText = new LPTSTR[strTime.GetLength() + 1];
lstrcpy(lvitem.pszText, strTime);
Top
3 楼flyelf(空谷清音)回复于 2004-09-04 20:05:55 得分 2
lvitem.pszText = strTime.GetBuffer(0);Top
4 楼crystal521(【云淡风轻】)回复于 2004-09-05 00:48:54 得分 2
lvitem.pszText = (LPTSTR)strTime.GetBuffer(strTime.GetLength());Top
5 楼kiluar(kiluar)回复于 2004-09-05 01:46:54 得分 0
首先,多谢各位大虾的建议,但是我的程序就是不识好歹,我逐一按各位的方法做了,但是还是不能奏效,还是老样子,望各位再显身手,出手相助为望,多谢,多谢拉!Top
6 楼jiangsheng(蒋晟.Net[MVP])回复于 2004-09-05 05:17:45 得分 12
lvitem.pszText = (LPTSTR)(LPCTSTR)strTime;
或者
lvitem.pszText = new TCHAR[strTime.GetLength() + 1];
lstrcpy(lvitem.pszText, strTime);
之后要ReleaseBuffer或者delete。上面的GetBuffer代码通通有问题。
参考CListCtrl::InsertItem的其他形式的源代码
P.S.
LVIF_IMAGE你是用来干什么的?你到底要不要指定图像索引?Top




