Последние источники Subversion Indy 10 не будут встроены в Delphi XE - PullRequest
0 голосов
/ 11 марта 2011

Только что получил последние источники из Subversion для Indy 10, и я получаю эту ошибку:

[Ошибка DCC] IdWinsock2.pas (2421): E2003 Необъявленный идентификатор: 'SIZE_T'

Код в строке 2421 IdWinsock2.pas:

  {$EXTERNALSYM WSACMSGHDR}
  WSACMSGHDR = record
    cmsg_len: SIZE_T;  // error.
    cmsg_level: Integer;
    cmsg_type: Integer;
    { followed by UCHAR cmsg_data[] }
  end;

Это кажется довольно простой ошибкой.Я как бы ожидал, что источники Indy будут встроены в последнюю версию Delphi из коробки.Это должно быть что-то не так с моей стороны, но я не знаю, что.

Похоже, стабильные источники тегов indy10 \ Indy10 \ tags \ Indy 10.5.7 работает нормально.Это просто ствол, который жарен.

Обновление: чтобы попытаться это исправить, я добавил это:

type
  SIZE_T = Cardinal;

Затем он умирает позже в том же IdWinsock2.pas, на 6238:

function WSA_CMSGHDR_ALIGN(const Alength: SIZE_T): SIZE_T;

И его external-sym определен в строке 3218 по-разному:

  function WSA_CMSGHDR_ALIGN(const Alength: PtrUInt): PtrUInt;

Мое лучшее предположение - кто-то находится в середине взлома при попытке выполнить эту работу в 64-битном FPC ине заметил, что они сломали возможность компилировать его в Delphi.

Ответы [ 3 ]

2 голосов
/ 11 марта 2011

Уоррен, см. Как исправить ошибку 'необъявленный идентификатор' в Indy?

Этот вопрос решает именно этот вопрос и содержит некоторые примечания о версиях Delphi, использованных для компиляции.

2 голосов
/ 11 марта 2011

SIZE_T поддержка в данный момент выполняется.Новый код был зарегистрирован до того, как он был готов, но вскоре должен быть исправлен.

0 голосов
/ 11 марта 2011

Я бы объявил size_t в Delphi как Кардинал :

type
  size_t = Cardinal;
...