Перенос массива указателей C ++ на Delphi - PullRequest
0 голосов
/ 09 сентября 2018

У меня есть следующий сценарий в коде C ++, который я портирую на Delphi.

Структура определяется следующим образом:

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

Я передаю эту структуру во внешнюю 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 безболезненно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...