Тип данных FreePascal clong для Delphi

Я пытаюсь использовать FreePascal 2.2.2 ibase60.inc из нижней ссылки этого ответа в Delphi Tokyo.

Он начинается со следующих определений:

type
  {  Unsigned types }

  UChar                = Byte;
  UShort               = Word;
  UInt                 = DWord;
  ULong                = DWord;

  { Signed types }

  Int                  = LongInt;
  Long                 = LongInt;
  Short                = SmallInt;
  Float                = Single;

  { Pointers to basic types }

  PInt                 = ^Int;
  PShort               = ^Short;
  PUShort              = ^UShort;
  PLong                = ^Long;
  PULong               = ^ULong;
  PFloat               = ^Float;
  PUChar               = ^UChar;
  PVoid                = ^Pointer;

const
   ISC_TRUE = 1;
   ISC_FALSE = 0;
const
   ISC__TRUE = ISC_TRUE;
   ISC__FALSE = ISC_FALSE;

Type
   ISC_USHORT    = word;
   ISC_STATUS    = clong;
   ISC_INT64     = int64;
   ISC_UINT64    = UInt64; // qword;
   ISC_LONG      = Longint;

   PISC_USHORT = ^ISC_USHORT;
   PISC_STATUS = ^ISC_STATUS;
   PPISC_STATUS = ^PISC_STATUS;
   PISC_INT64 = ^ISC_INT64;
   PISC_UINT64 = ^ISC_UINT64;
   PISC_LONG = ^ISC_LONG;

Как преобразовать этот тип ISC_STATUS = clong в Delphi? Его нет в разделе переменных и типов данных FreePascal, и до сих пор мне не удалось найти работающий код. .


person Jan Doggen    schedule 27.10.2017    source источник
comment
При каждой попытке поиска в Google большинство результатов Google думает, что мне нужен клон.   -  person Jerry Dodge    schedule 27.10.2017
comment
clong тип (как и другие типы, производные от C языка), в основном объявленный в ctypes модуль. для систем на основе Unix вам необходимо просмотреть некоторые включения (aliasctp.inc -› ctypes.inc), для другие ОС объявлены в ctypes.pp как clong = int64; или clong = longint; в зависимости от целевого процессора. Другими словами: используйте источники.   -  person Abelisto    schedule 27.10.2017
comment
A C long отображает Delphi Longint. Предыдущие комментарии - просто бред.   -  person David Heffernan    schedule 27.10.2017
comment
@Abelisto Спасибо за этот указатель на ctypes.inc, я мало что знаю о FP. Может пригодится в следующий раз. Хотя один вопрос вдогонку. В этом файле написано qword=int64, где я перевел qword= uint64, потому что это говорит о 64-битном беззнаковом 0..18446744073709551615   -  person Jan Doggen    schedule 27.10.2017
comment
QWORD должно быть UInt64, но некоторые старые версии Delphi имели только подпись Int64. Возможно, то же самое верно и для fpc.   -  person David Heffernan    schedule 27.10.2017
comment
@JanDoggen Он находится в разделе {$ifndef FPC}, вероятно, для совместимости со старыми версиями Delphi, как упоминал Дэвид.   -  person Abelisto    schedule 28.10.2017
comment
Этот комментарий находится в ctypes.pp, который у меня есть здесь: qword = int64; // Keep h2pas "uses ctypes" headers working with delphi.. Так что, похоже, это связано с тем, как h2pas перевел QWORD, когда Delphi только подписал Int64, как говорит @David.   -  person Rudy Velthuis    schedule 31.10.2017