четверг, 5 февраля 2015 г.

Описание API вызова библиотеки GetNumCom.DLL

Данная библиотека (далее DLL), для работы с веткой "ПОРТЫ COM и LPT" через SetupAPI в ОС NT/2000/2003/XP/7/8 и выше, позволяет получить список занятых портов COM/LPT (в том числе, виртуальных) для заданного имени устройства, либо получить имя устройства по заданному порту и предоставляет универсальный доступ для других приложений вне зависимости от языка в среде Win OS ALL.



Для использования DLL в своих проектах соблюдайте соглашение об stdcall-вызовах. Тип соглашения о вызове объявляется после прототипа функции, будь то объявление функционального типа или же объявление функции.

Таблица расшифровок входных и выходных параметров экспортируемой функции GETS() библиотеки 'GetNumCom.DLL':


Пример динамического подключения (Delphi 6/7/2006/2009/2010/TDL/XE-XE7):
type
 TInfo = packed record
    gadget_name,
    gadget_numport: pansichar;
    cnt: integer;
    Section: array [0..100] of pansichar;
  end;
  pinfo = ^TInfo;

var
  gets:procedure(res: pinfo);stdcall;
  LibHandle: THandle;
  t: tinfo;
  i: integer;
 
 { инициализация }
 LibHandle:= LoadLibrary('getnumcom.dll');
 if LibHandle<>0 then
  gets:= GetProcAddress(LibHandle,'gets')
Пример получения списка COM портов для заданного имени:
 if LibHandle<>0 then begin
  memo1.Clear;

  t.gadget_name:= pansichar(edit1.Text); // 'Novatel'
  t.gadget_numport:= '';
  gets(@t);

  for i:= 0 to t.cnt-1 do
   memo1.Lines.Add(t.Section[i])
 end;
Пример получения имени устройства на заданном порту:
 if LibHandle<>0 then begin
  memo1.Clear;

  t.gadget_name:= '';
  t.gadget_numport:= pansichar(edit2.Text); // COM2
  gets(@t);

  for i:= 0 to t.cnt-1 do
   memo1.Lines.Add(t.Section[i])
 end;








ПОРЯДОК ИСПОЛЬЗОВАНИЯ
  1. Регистр задаваемых параметров 't.gadget_name' и 't.gadget_numport' функции GETS() не имеет значения.
  2. Для получения списка портов (COM или LPT), сопоставленных имени устройства в параметре 't.gadget_name', параметр 't.gadget_numport' следует оставлять пустым.
  3. При задании параметра 't.gadget_numport' будет произведен поиск имени устройства на заданном порту COM или LPT и занесен в нулевой элемент массива результата функции GETS().
  4. Имя устройства в параметре 't.gadget_name' можно задавать полностью или частично, например:
 NEC Electronics Starter Kit Virtual UART
 NEC Electro
 nec
 NEC
 bLUE
 BlueTOOCH
скачать или скачать

1 комментарий:

  1. Проведено обновление библиотеки GetNumCOM.DLL. Ссылки прежние.

    ОтветитьУдалить

В комментариях уважайте собеседника, внимательно читайте посты и не додумывайте. Просьбы и предложения из разряда: «можно ваш Skype/Viber/телефон», «напишите мне в vk/FB», а также другие им подобные — игнорируются. Выход новых версий ПО, внешняя ссылка, переставшая работать с течением времени и т.п. не является основанием для претензий. Желающие спокойно подискутировать и высказаться — Welcome. Желающие спонсировать блог — Donate. Нарушение этих простых правил ведет к бану и удалению комментариев без предупреждения.