我在将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中轻松完成同样的工作。