以下是 DPA_SetPtr 函数的基本用法:
#include <windows.h>
#include <commctrl.h>
#include <iostream>
int main() {
// 初始化 Common Controls 库
INITCOMMONCONTROLSEX icex;
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC = ICC_LISTVIEW_CLASSES;
InitCommonControlsEx(&icex);
// 创建动态指针数组
HDPA hDpa = DPA_Create(10);
if (hDpa == NULL) {
// 处理错误
return 1;
}
// 向数组中添加指针
int* pData1 = new int(42);
DPA_AppendPtr(hDpa, pData1);
int* pData2 = new int(99);
DPA_AppendPtr(hDpa, pData2);
// 获取数组中指定位置的指针
int nPosition = 0;
int* pNewData = new int(123);
// 使用 DPA_SetPtr 设置指定位置的指针
DPA_SetPtr(hDpa, nPosition, pNewData);
// 输出更新后的数组中的元素
int nCount = DPA_GetPtrCount(hDpa);
for (int i = 0; i < nCount; ++i) {
int* pData = (int*)DPA_GetPtr(hDpa, i);
std::cout << "Index " << i << ": " << *pData << std::endl;
}
// 注意:DPA_SetPtr 不会释放原始位置的指针,需要手动释放
delete pData1;
delete pData2;
// 清理资源
DPA_Destroy(hDpa);
return 0;
}
在这个例子中,DPA_SetPtr 函数用于设置动态指针数组中指定位置的指针。在实际使用中,请确保你有足够的理解和控制,以避免内存泄漏或使用已释放的内存。
转载请注明出处:http://www.zyzy.cn/article/detail/27257/Win32 API/Dpa_dsa.h/DPA_SetPtr