вызывая визуальную студию dll из delphi или lazarus - PullRequest
0 голосов
/ 29 мая 2018

Мне нужно вызвать DLL из Delphi 7 или Lazarus.Информация о dll минимальна, но у меня есть пример ее использования в visual studio: Объявления:

    [DllImport("landwell.dll", EntryPoint = "PTcomm", CharSet = CharSet.Auto)]
    public static extern int PTcomm(int com, int boud, ref int Rcount);
    [DllImport("landwell.dll", EntryPoint = "PTcomm_YPWJ", CharSet = CharSet.Auto)]
    public static extern int PTcomm_YPWJ(int com, int boud, ref int Rcount);

    [DllImport("landwell.dll", EntryPoint = "PTrecord", CharSet = CharSet.Auto)]
    public static extern int PTrecord(int num,byte[] record);

Как мне объявить и вызвать эти функции в Delphi 7 или Lazarus?

Единственная документация, которую я имею: 1 、 Common Transmit: PTcomm (int com, int boud, int * Rcount) Com для серийного номера порта, скорость передачи данных 9600, * Rcount для записи общего числа
«1»означает успешный возврат, «0» означает отсутствие записи, «- 1» означает неудачное открытие порта, «- 2» означает неудачную передачу

2 、 Обычный сбор данных PTrecord (int num , byte record [8])запись {8} означает 8 байт (включая номер читателя), num означает, что серийный номер «1» означает успешный возврат, «0» означает неудачный возврат. У меня есть только пример в Visual Studio, который я даже не могу попробовать, так как он был написан вболее старая версия VS и автоматическое преобразование не работали. В настоящее время я не собираюсь изучать VS. Заявления, упомянутые ранее в посте, поступают отО, этот пример.Меня обвинили в том, что я даже не пытался сделать что-то, кто меня не знает и не знает, что я сделалЯ попытался и потерпел неудачу, поэтому я спрашиваю.

Спасибо, Жан-Клод

1 Ответ

0 голосов
/ 29 мая 2018

Попробуйте эти объявления в Delphi и Lazarus:

function PTcomm(com, boud: Integer; var Rcount: Integer): Integer; stdcall; external 'landwell.dll';

function PTcomm_YPWJ(com, boud: Integer; var Rcount: Integer): Integer; stdcall; external 'landwell.dll';

function PTrecord(num: Integer; rec: PByte): Integer; stdcall; external 'landwell.dll';
...