Добрый день.
Простите, пожалуйста, у меня с английским совсем туго, а тем более когда давно не писал на Pascal.
У меня задача написать программу на Lazarus (Delphi сейчас не в фаворе) по пробитию кассовых чеков.
Пробовал задать вопрос на англоязычном форуме, меня не послали, но все их ответы, честно, я не понял. В одном советовали импортировать что-то с помощью importtti, в другом я понял аналог того, что есть в Delphi. Для Delphi понятно, импортировал из зарегистрированной библиотеки файл pas с классом TDrvFR и создаешь класс на его основе и используешь. Попытался его подтянуть в Lazarus - естественно нет модулей из Delphi по работе с ole и прочего. Нашел проект от Штриха с драйверами в том числе и для Linux и заголовочными файлами на C https://github.com/shtrih-m/fr_drv_ng/r ... 1-g1b0b878
Спросил как мне сконвертировать заголовочный файл на C в модуль PAS и использовать как в Delphi. Но, совсем не понял. Предложили установить LazActiveX и проделать как в Delphi. Этот вариант я понял и даже получилось создать пакет (нафига мне целый пакет, когда нужен только модуль для работы с dll), но он создал модуль по работе не с классами, а интерфейсами. Простите, я их 20 лет назад не очень понимал, а сейчас и подавно.
Помогите создать модуль по работе с драйвером DrvFR.dll.
На всякий случай ветка с английского форума https://forum.lazarus.freepascal.org/in ... 37.15.html
Не ругайтесь, пожалуйста, реально давно не программировал на Delphi/Pascal (последний раз года 3 назад быстро накатал программку по работе с этим драйвером на Delphi и опять забыл).
Объясните, пожалуйста, как мне или сконвертировать или заголовочные файлы из C в Pas, или как мне корректно импортировать модуль ActiveX (с классом TDrvFR), на худой конец, как использовать интерфейс IDrvFR по аналогии с TDrvFR.
Последний драйвер от Штрих-М с программой тест-драйвер (программа явно на Delphi) можно взять с этого сайта https://exam.shtrih-m-partners.ru/base/ самая первая строчка драйвера.
Версия драйвера в том числе под Linux, т.е. без ActiveX (меня интересует только Windows, заморочки с кросс-компиляцией даже не затрагиваю) https://github.com/shtrih-m/fr_drv_ng/r ... 1-g1b0b878
Использование драйвера Штрих-М в Lazarus
Модератор: Модераторы
-
kirill
- новенький
- Сообщения: 22
- Зарегистрирован: 25.10.2010 19:40:45
- Откуда: Kaliningrad, RF
- Контактная информация:
В том-то и дело, что я работал не как с Word через COM-объект, а с TDrvFR как с обычным объектом, на основании которого создал свой и использовал методы родительского.
Вчера поковырялся в сформированном на основании dll файла с помощью importttl модуле и вроде понял как работать. Пока в своем компоненте сделал дополнительный публдичнй объект с типом IDrvFR49 и вызываю его методы. Пока не проверял как он работает. Но сам принцип не нравиться, что будет когда цифра изменится. Если новая версия драйвера? Пока вопросов больше чем ответов, но для начала надо протестировать на кассе, а этого пока не сделал
Вчера поковырялся в сформированном на основании dll файла с помощью importttl модуле и вроде понял как работать. Пока в своем компоненте сделал дополнительный публдичнй объект с типом IDrvFR49 и вызываю его методы. Пока не проверял как он работает. Но сам принцип не нравиться, что будет когда цифра изменится. Если новая версия драйвера? Пока вопросов больше чем ответов, но для начала надо протестировать на кассе, а этого пока не сделал
И чем все закончилось?
У меня недавно была схожая ситуация.
Есть управляющий софт, написанный на лазарусе. Нужно было прицепить кассовый аппарат штрих-м. Всё хозяйство работает под windows.
Не стал заморачиваться, написал на delphi dll, которая реализует нужный мне функционал по работе с кассовым аппаратом. DLL вызываю из кода на freepascal.
Способ, конечно, не блещет красотой. Но была задача написать код для внутреннего использования, поэтому пойдет.
Есть управляющий софт, написанный на лазарусе. Нужно было прицепить кассовый аппарат штрих-м. Всё хозяйство работает под windows.
Не стал заморачиваться, написал на delphi dll, которая реализует нужный мне функционал по работе с кассовым аппаратом. DLL вызываю из кода на freepascal.
Способ, конечно, не блещет красотой. Но была задача написать код для внутреннего использования, поэтому пойдет.
У нас был проект на Lazarus (переписали в свое время с нашего же проекта на DELPHI7) для работы с кассами ATOL через их драйвер.
Atol молодцы они предоставили примеры на туче языков, и среди них был и Delphi
Потом заказчик появился , который не посоветовавшись приобрел Штрих-М
Не стали ничего переписывать на Штрихи, а просто купи ли программные ключи для работы с ними через тот же драйвер ATOL
Раньше такое возможно было, сейчас не знаю, уточню завтра у того кто проект подерживает.
Atol молодцы они предоставили примеры на туче языков, и среди них был и Delphi
Потом заказчик появился , который не посоветовавшись приобрел Штрих-М
Не стали ничего переписывать на Штрихи, а просто купи ли программные ключи для работы с ними через тот же драйвер ATOL
Раньше такое возможно было, сейчас не знаю, уточню завтра у того кто проект подерживает.
