c-d*_*dev 5 c winapi
关于WIN32 api的一个简单问题. 我有一个使用MySQL C API连接到MySQL的函数,它检索指向结构的指针的链接列表.
所以在一个对话框回调中,我ListView用这些元素填充一个控件,并将每个元素结构指针附加到一行中ListView.
ListView
现在的问题是:我应该释放指针从删除的所有项目后,ListView通过LVM_DELETEALLITEMS例如当我点击刷新按钮? 或者WIN32 API为我释放它们?
LVM_DELETEALLITEMS
IIn*_*ble 5
从列表视图中删除项目时,您负责清理通过LVITEM结构的lParam成员引用的任何资源.Windows API不会为您执行此操作.
实际上,Windows API无法为您执行此操作.它没有办法知道,指针指向的内存是否分配使用new,malloc,IMalloc,或任何其他分配器.或者指针可能指向静态分配的数组,并且不需要完全释放.或者它甚至可能不是指针,而是用于排序的哈希值,或者是其他结构的索引.
new
malloc
IMalloc
因为只有你知道,如何解释lParam,所有关于资源管理的责任都在你身上.与一些观点相反,C++在这里不会帮助你.
归档时间:
9 年 前
查看次数:
130 次
最近记录: