Дилемма с подключением драйвера
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7419
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 50 раз
Дилемма с подключением драйвера
Привет всем !
Есть непреодолимое желание подключить к программе драйвер оборудования (например АТОЛ ДТО10).
Технологических проблем нет, драйвер поставляется как DLL, легко линкуется к Clarion приложению.
Но возникает непреодолимая дилемма.
1. Если не добавлять к комплекту программы DLL драйвера, то при запуске программы на компьютере
пользователя, возникает ожидаемая ошибка из-за отсутствующей DLL.
(не нужен юзеру вообще этот АТОЛ и его драйвер, у него используется Штрих-М и т.д.)
2. Если добавлять к комплекту программы DLL драйвера, то может (и скорее всего возникнет) разнобой
версий между этой DLL и установленном на компьютере драйвере АТОЛ ДТО10, который имеет кучу
версий и постоянно сам по себе обновляется как отдельное приложение …
И как это разрулить пока не понятно …
Предлагает ли современная наука какое-то решение этого вопроса (кроме OLE - это отдельная тема) ?
Заранее спасибо за любую идею.
Есть непреодолимое желание подключить к программе драйвер оборудования (например АТОЛ ДТО10).
Технологических проблем нет, драйвер поставляется как DLL, легко линкуется к Clarion приложению.
Но возникает непреодолимая дилемма.
1. Если не добавлять к комплекту программы DLL драйвера, то при запуске программы на компьютере
пользователя, возникает ожидаемая ошибка из-за отсутствующей DLL.
(не нужен юзеру вообще этот АТОЛ и его драйвер, у него используется Штрих-М и т.д.)
2. Если добавлять к комплекту программы DLL драйвера, то может (и скорее всего возникнет) разнобой
версий между этой DLL и установленном на компьютере драйвере АТОЛ ДТО10, который имеет кучу
версий и постоянно сам по себе обновляется как отдельное приложение …
И как это разрулить пока не понятно …
Предлагает ли современная наука какое-то решение этого вопроса (кроме OLE - это отдельная тема) ?
Заранее спасибо за любую идею.
За теми кто отстал - не возвращаться. (С) Кодекс
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1378
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
Дилемма с подключением драйвера
Динамическое подключение dll с динамической линковкой функций... Посмотри как подключаются функции из ClaRunExt.dll. Это если "умное" решение
Есть "тупое" - вынести функцию работы с драйвером в некую отдельную dll, сделать копию этой же dll, где вместо функций вызова драйвера "заглушки" и dll драйвера не подлинкована, соответственно разным клиентам поставлять разные версии этой dll
Есть "тупое" - вынести функцию работы с драйвером в некую отдельную dll, сделать копию этой же dll, где вместо функций вызова драйвера "заглушки" и dll драйвера не подлинкована, соответственно разным клиентам поставлять разные версии этой dll
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4664
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 8 раз
- Поблагодарили: 37 раз
Дилемма с подключением драйвера
Стандартно в кларионе есть вызов процедур из внешней dll. Мне этого хватает. Если нужно передавать параметры и возвращать значения, то подгрузить dll можно через win api, подробно обсуждалось n лет назад, примеры можно поискать в clalist.
Вопрос больше, конечно, а чем не устраивает работа через ole в данном контексте? С утра в воскресенье?
Вопрос больше, конечно, а чем не устраивает работа через ole в данном контексте? С утра в воскресенье?
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7419
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 50 раз
Дилемма с подключением драйвера
Спасибо - посмотрю, но боюсь что это слишком сложное решение для чужой DLL с непредсказуемыми изменениями …
В Clarion есть работа с подгружаемыми DLL, но вызов функций из них - без параметров … не подходит.
А, кстати, интересно. Действительно:
1. DLL-заглушка-пустышка идёт в комплекте с программой и ничего не делает, наличие драйвера не требует.
2. В этом же комплекте идёт рабочая DLL, которая не прилинкована к программе.
3. В меню программы делаем пункт "Подключить АТОЛ". По нему:
- проверяем наличие установленного драйвера АТОЛ,
- перезапускаем программу с удалением "пустышки" и копированием на её место рабочей DLL.
4. В теории - вроде бы всё получается …
За теми кто отстал - не возвращаться. (С) Кодекс
- Игорь Столяров
- Ветеран движения
- Сообщения: 7419
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 50 раз
Дилемма с подключением драйвера
В данном случае, дело даже не в похмелье …
1. OLE всё-таки уже очень старая технология и от неё все производители избавляются. Game over ...
2. Есть некоторые проблемы с инициализацией OLE при ограничения прав юзеров в Windows и терминальных сессиях.
За теми кто отстал - не возвращаться. (С) Кодекс
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1378
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
Дилемма с подключением драйвера
Можно и с параметрами, см. пример вышеИгорь Столяров писал(а): ↑21 Октябрь 2018, 10:14Спасибо - посмотрю, но боюсь что это слишком сложное решение для чужой DLL с непредсказуемыми изменениями …
В Clarion есть работа с подгружаемыми DLL, но вызов функций из них - без параметров … не подходит.
Если сложно динамически линковать чужую dll, можно написать свою обертку (хоть даже с функциями без параметров) и линковать уже её
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4664
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 8 раз
- Поблагодарили: 37 раз
Дилемма с подключением драйвера
Ну, тогда все понятно...Игорь Столяров писал(а): ↑21 Октябрь 2018, 10:18В данном случае, дело даже не в похмелье …
1. OLE всё-таки уже очень старая технология и от неё все производители избавляются. Game over ...
2. Есть некоторые проблемы с инициализацией OLE при ограничения прав юзеров в Windows и терминальных сессиях.
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7419
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 50 раз
Дилемма с подключением драйвера
Вам-то с Пиритами & COM портами проще … а вот с АТОЛ & OLE есть одна интересность …
Драйвер АТОЛ ДТО8 поддерживается до конца 2018 г., а современный АТОЛ ДТО10 не имеет OLE интерфейса.
И что с этим делать, лично мне - пока не понятно.
Кто-нибудь пробовал юзать драйвер АТОЛ ДТО10 из Clarion ?
За теми кто отстал - не возвращаться. (С) Кодекс
- Admin
- Администратор
- Сообщения: 3962
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 28 раз
- Поблагодарили: 22 раза
- Контактная информация:
Дилемма с подключением драйвера
Не совсем так. Судя по информации на этой странице, драйвер будет поддерживаться до 28.12.2019. В конце же 2018 прекращается доработка/обновление драйвера.
На форуме обещали какой то OLE враппер для пользователей старых версий. Но это вилами на воде.
Я для себя решил пока не спешить и заняться следующим летом.Игорь Столяров писал(а): ↑23 Октябрь 2018, 20:19Кто-нибудь пробовал юзать драйвер АТОЛ ДТО10 из Clarion ?
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
- Игорь Столяров
- Ветеран движения
- Сообщения: 7419
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 50 раз
Дилемма с подключением драйвера
Спасибо за информацию ! В справке-то к ДТО10 они написали, что у них реализован интерфейс OLE …
Но у них смешались люди и кони, т.к. на самом деле реализован COM интерфейс. По крайне мере - сейчас.
С другой стороны, как я понял, 1С-никам всё равно, т.к. у них реализован общий механизм интеграции для OLE / COM.
А вот нам надо идти к Деду Пахому. У него есть инструмент дивный, нам не ведомый.
Который делает обёртку к DLL с COM интерфейсом для подключения из Clarion … Других путей я пока не вижу.
Но у них смешались люди и кони, т.к. на самом деле реализован COM интерфейс. По крайне мере - сейчас.
С другой стороны, как я понял, 1С-никам всё равно, т.к. у них реализован общий механизм интеграции для OLE / COM.
А вот нам надо идти к Деду Пахому. У него есть инструмент дивный, нам не ведомый.
Который делает обёртку к DLL с COM интерфейсом для подключения из Clarion … Других путей я пока не вижу.
За теми кто отстал - не возвращаться. (С) Кодекс
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4664
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 8 раз
- Поблагодарили: 37 раз
Дилемма с подключением драйвера
Ну, еще через vbscript решение напрашивается... Как правило, для него дают образцы кода. Это если быстро надо вопрос закрыть. Но, вообще говоря, я бы тоже пока не стал дергаться. Через ole много софта работает, могут атоловцев прогнуть.
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7419
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 50 раз
Дилемма с подключением драйвера
Мне кажется АТОЛ - пофиг, чего им париться-то особо в стране победившей 1С ?
Тут ещё нужно учитывать, что Microsoft тоже считает OLE рудиментом и грозит её прикрыть. Развивать - уж точно не будет.
За теми кто отстал - не возвращаться. (С) Кодекс
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4664
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 8 раз
- Поблагодарили: 37 раз
Дилемма с подключением драйвера
На самом деле, у каждого производителя существует протокол обмена с оборудованием - строки, формируемые по определенным правилам, которые отправляются в ккм и получаются в ответ. Далее, есть транспортная система. Насколько я знаю, это либо обмен по com порту (физическому или виртуальному), либо сокеты. Дальше уже идет надстройка в виде библиотек для упрощения работы. Например, упоминаемый драйвер АТОЛ.
То есть технически мы можем работать с ккм от атола или штриха напрямую, без их драйверов. Как с пиритами или сп-ками. Другой вопрос, нужно ли это...
То есть технически мы можем работать с ккм от атола или штриха напрямую, без их драйверов. Как с пиритами или сп-ками. Другой вопрос, нужно ли это...
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7419
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 50 раз
Дилемма с подключением драйвера
От SV интеграцию с COM тоже ждать не приходится, там более важные дела сейчас идут по перекраске шаблонов.
Короче, куда ни глянь - везде попа. И чем дальше - тем она больше.
Короче, куда ни глянь - везде попа. И чем дальше - тем она больше.
За теми кто отстал - не возвращаться. (С) Кодекс
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4664
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 8 раз
- Поблагодарили: 37 раз
Дилемма с подключением драйвера
На самом деле, кроме 1с есть куча разного другого софта. К примеру, в сетевом ритейле 1с, скажем так, не очень популярна. А в специализированных pos системах, как правило, несколько другой софт. К примеру, распространенная связка бэка на 1с и фронтола в отдельных магазинах и небольших сетях.Игорь Столяров писал(а): ↑24 Октябрь 2018, 15:04Мне кажется АТОЛ - пофиг, чего им париться-то особо в стране победившей 1С ?
Тут ещё нужно учитывать, что Microsoft тоже считает OLE рудиментом и грозит её прикрыть. Развивать - уж точно не будет.
C6/C11, ШВС, tps/btrieve.