DPA_GetPtr 函数用于获取动态指针数组(Dynamic Pointer Array,DPA)中指定位置的指针。以下是该函数的使用示例:
#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* pResult = (int*)DPA_GetPtr(hDpa, nPosition);

    if (pResult != NULL) {
        // 使用 pResult,这是数组中指定位置的指针
        std::cout << "Pointer Value: " << *pResult << std::endl;
    }

    // 注意:pResult 不拥有指针的所有权,不要删除它指向的对象

    // 清理资源
    DPA_Destroy(hDpa);

    return 0;
}

在这个例子中,DPA_GetPtr 函数被用于获取动态指针数组的指定位置的指针。需要注意的是,pResult 指向的对象仍然由数组管理,不要尝试在使用完指针后删除它,除非你手动从数组中删除了这个指针。




转载请注明出处:http://www.zyzy.cn/article/detail/27254/Win32 API/Dpa_dsa.h/DPA_GetPtr