首页 > 解决方案 > C++ 指针数组移植到 Delphi

问题描述

我在移植到 Delphi 的 C++ 代码中有以下场景。

结构体定义如下:

typedef struct tagMyType
{
    LPVOID  pData;              // allocated by the client
} MyType, FAR* LPMyType;

我将此结构传递给一个外部 DLL,该 DLL 在其中填充数据。根据我的文档,它说明了以下内容:

pData 将指向一个空终止字符串的打包列表

我在Delphi中声明的记录如下:

TMyType = record
  pData: POINTER;
end;
PMyType = ^TMyType;

内存分配和 DLL 调用成功,pData 被填充。

然后,C++ 代码将此字段视为一个数组,这是我在 Delphi 中无法根据 pData 声明的事情。

for ( i = 0; i < 10; i++ )
    printf( "%d", ((ULONG*)stEnum.pData)[i] );

我知道 C++ 可以将指针作为数组处理,我想知道如何在 Delphi 中轻松地做同样的事情。

标签: c++delphi

解决方案


推荐阅读