ATOL драйвер 10.x

Сканеры, кассы, ККТ и т.д.
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4322
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

ATOL драйвер 10.x

Сообщение Игорь Столяров » 14 Июль 2019, 19:39

vic7tar писал(а):
14 Июль 2019, 19:32
А зачем при вызове сишных функций дополнительно необходимо указывать её же адрес?
Так здесь же нет прямого линкования DLL (точнее LIB) при сборке приложения.
DLL загружается в процессе выполнения и адреса вызова функций в ней определяются динамически по наименованию.
«V» значит Вендетта !

Аватара пользователя
vic7tar
Старожил
Сообщения: 260
Зарегистрирован: 09 Февраль 2017, 20:12

ATOL драйвер 10.x

Сообщение vic7tar » 14 Июль 2019, 20:21

Нет, всё не так.
Вот декларация конкретной функции в библиотеке:

Код: Выделить всё

_DWORD __cdecl libfptr_apply_single_settings(_DWORD);
Так что адрес функции заложен в параметре вызова. Линкование прямое.
Admin разъяснит, он копался.
C10, Win10x64

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4322
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

ATOL драйвер 10.x

Сообщение Игорь Столяров » 14 Июль 2019, 20:42

vic7tar писал(а):
14 Июль 2019, 20:21
Линкование прямое.
Это же сишное объявление для линкования DLL. Можно создать LIB и в Clarion прилинковать вызовы функций из внешней DLL.
Тогда объявления в MAP будут такие же … Например так сделано в проекте XLSXLibWriter, только без DLL программа не запустится.

Посмотрим, что Admin скажет, в Хабаровске уже светает … ;)
«V» значит Вендетта !

Аватара пользователя
vic7tar
Старожил
Сообщения: 260
Зарегистрирован: 09 Февраль 2017, 20:12

ATOL драйвер 10.x

Сообщение vic7tar » 14 Июль 2019, 20:52

А где в XLSXLibWriter есть что-то аналогичное, т.е. для запуска функции ещё необходим её адрес в библиотеке?
C10, Win10x64

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4322
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

ATOL драйвер 10.x

Сообщение Игорь Столяров » 14 Июль 2019, 21:02

vic7tar писал(а):
14 Июль 2019, 20:52
А где в XLSXLibWriter есть что-то аналогичное, т.е. для запуска функции ещё необходим её адрес в библиотеке?
Как раз там и не требуется указывать адрес функции в DLL, т.к. он определяется на этапе линковки приложения
и не может быть изменён в процессе работы приложения (статический). Т.е. это другой вариант работы с внешней DLL.
«V» значит Вендетта !

Аватара пользователя
vic7tar
Старожил
Сообщения: 260
Зарегистрирован: 09 Февраль 2017, 20:12

ATOL драйвер 10.x

Сообщение vic7tar » 14 Июль 2019, 21:11

vic7tar писал(а):
14 Июль 2019, 20:52
А где в XLSXLibWriter есть что-то аналогичное, т.е. для запуска функции ещё необходим её адрес в библиотеке?
Ещё раз повторяю вопрос.
C10, Win10x64

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4322
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

ATOL драйвер 10.x

Сообщение Игорь Столяров » 14 Июль 2019, 21:19

На это можно только повторить ответ и надеяться, что Вы его прочитаете … :)
Игорь Столяров писал(а):
14 Июль 2019, 20:42
Это же сишное объявление для линкования DLL. Можно создать LIB и в Clarion прилинковать вызовы функций из внешней DLL.
Тогда объявления в MAP будут такие же … Например так сделано в проекте XLSXLibWriter, только без DLL программа не запустится.
Давайте дождёмся Админа - и узнаем его мнение. ;)
«V» значит Вендетта !

Аватара пользователя
Admin
Администратор
Сообщения: 3482
Зарегистрирован: 05 Июль 2005, 14:59
Откуда: Хабаровск
Контактная информация:

ATOL драйвер 10.x

Сообщение Admin » 15 Июль 2019, 3:03

Это магия! :cat:
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса

Аватара пользователя
Admin
Администратор
Сообщения: 3482
Зарегистрирован: 05 Июль 2005, 14:59
Откуда: Хабаровск
Контактная информация:

ATOL драйвер 10.x

Сообщение Admin » 15 Июль 2019, 3:08

Игорь все верно ответил.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4322
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

ATOL драйвер 10.x

Сообщение Игорь Столяров » 15 Июль 2019, 6:17

Ура ! Значит Игорь не безнадёжен … :)

А кстати, не пробовали передать в окно настроек параметров ATOL 10 - HANDLE вызывающего окна ?
Вроде бы по описанию - можно.

Код: Выделить всё

  Open(DWindow)
  ...
  If Atol.FlagLoaded
    If Atol.OpenDialog(DWindow{Prop:Handle}) = LIBFPTR_ERROR ! 1 = cancel, LIBFPTR_OK, LIBFPTR_ERROR
       MESSAGE(Atol.ErrorDescription(),Atol.ErrorCode())
       RETURN
    end
  end
Чего бы я туда не передавал - всегда ОШИБКА 6 (INTERNAL ERROR). :(
«V» значит Вендетта !

Аватара пользователя
Admin
Администратор
Сообщения: 3482
Зарегистрирован: 05 Июль 2005, 14:59
Откуда: Хабаровск
Контактная информация:

ATOL драйвер 10.x

Сообщение Admin » 15 Июль 2019, 6:51

finsoftrz писал(а):
12 Июль 2019, 23:52
А никто не пробовал libfptr_util_form_nomenclature для формирование ктн для табака? Вот такой код возвращает пустое значение:
Читать тут и пробовать с саппортом на форуме общаться. Попробовал вашу тему. Тоже получается пустая строка.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса

Аватара пользователя
Admin
Администратор
Сообщения: 3482
Зарегистрирован: 05 Июль 2005, 14:59
Откуда: Хабаровск
Контактная информация:

ATOL драйвер 10.x

Сообщение Admin » 15 Июль 2019, 6:53

Игорь Столяров писал(а):
15 Июль 2019, 6:17
Вроде бы по описанию - можно.
Тоже не работает.
Но я вообще на это окно не завязывался.
У меня порт и тип аппарата заранее известен и т.д.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса

Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 1393
Зарегистрирован: 06 Ноябрь 2014, 12:48

ATOL драйвер 10.x

Сообщение finsoftrz » 15 Июль 2019, 8:20

Admin писал(а):
15 Июль 2019, 6:51
finsoftrz писал(а):
12 Июль 2019, 23:52
А никто не пробовал libfptr_util_form_nomenclature для формирование ктн для табака? Вот такой код возвращает пустое значение:
Читать тут и пробовать с саппортом на форуме общаться. Попробовал вашу тему. Тоже получается пустая строка.
Это я читал уже. У вас ккм зарегина? Может, все таки от этого зависит. Я уже не удивлюсь.
Рязань решает.

Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 1393
Зарегистрирован: 06 Ноябрь 2014, 12:48

ATOL драйвер 10.x

Сообщение finsoftrz » 15 Июль 2019, 8:22

Admin писал(а):
15 Июль 2019, 6:53
Игорь Столяров писал(а):
15 Июль 2019, 6:17
Вроде бы по описанию - можно.
Тоже не работает.
Но я вообще на это окно не завязывался.
У меня порт и тип аппарата заранее известен и т.д.
У меня тоже не взлетело. Если вызывать окно настроек без хэндла, то работает, но оно модальное и открывается на заднем фоне. Кстати, тип ккм можно ставить в автоопределение, если это атоловский аппарат.
Рязань решает.

Аватара пользователя
Admin
Администратор
Сообщения: 3482
Зарегистрирован: 05 Июль 2005, 14:59
Откуда: Хабаровск
Контактная информация:

ATOL драйвер 10.x

Сообщение Admin » 15 Июль 2019, 8:23

finsoftrz писал(а):
15 Июль 2019, 8:20
У вас ккм зарегина?
Нет. АТОЛ 22 ПТК с чистым накопителем. Для теста.
И да, есть операции которые работаю только на фискализированном ККМ.
К примеру чеки комиссионера.
finsoftrz писал(а):
15 Июль 2019, 8:22
можно ставить в автоопределение
Да пока без надобности. По сути у нас только АТОЛ 22 ПТК
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса

Ответить