我在C代码中有以下场景,我正在移植到Delphi .
结构定义如下:
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代码将此字段视为一个数组,根据声明的pData,我无法在Delphi中执行此操作 .
for ( i = 0; i < 10; i++ )
printf( "%d", ((ULONG*)stEnum.pData)[i] );
我知道C可以将Pointers作为数组处理,我想知道如何在Delphi中无痛地执行相同的操作 .