ATOL драйвер 10.x

Сканеры, кассы, ККТ и т.д.
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Admin
Администратор
Сообщения: 3440
Зарегистрирован: 05 Июль 2005, 14:59
Откуда: Хабаровск
Контактная информация:

ATOL драйвер 10.x

Сообщение Admin » 18 Январь 2019, 10:36

Кто нибудь уже трогал?
Не могу получить CSTRING из библиотеки.
Уже все танцы с бубном использовал.

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

    libfptr_create(*LONG fptr),LONG,RAW,PASCAL,PROC
    libfptr_error_description(LONG fptr, LONG pValue, LONG lValueSize),LONG,RAW,PASCAL,PROC
    ...
fptr          EQUATE(LONG)
LOC:ResultStr CSTRING(256)
LOC:Size      LONG
    ...
    libfptr_create(fptr)
    ...
    !тут какие то действия приводящие к 100% ошибке     
    ...
    LOC:Size = libfptr_error_description(fptr, ADDRESS(LOC:ResultStr), SIZE(LOC:ResultStr))
    MESSAGE(LOC:Size & ' ' & LOC:ResultStr)
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса

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

ATOL драйвер 10.4.2

Сообщение Admin » 18 Январь 2019, 10:41

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

DTOX_SHARED_EXPORT int DTOX_SHARED_CCA libfptr_error_description(libfptr_handle handle, wchar_t *value, int size);
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса

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

ATOL драйвер 10.4.2

Сообщение Admin » 18 Январь 2019, 10:42

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

std::vector<wchar_t> errorDescription(32);
int size = libfptr_error_description(fptr, &errorDescription[0], errorDescription.size());
if (size > errorDescription.size())
{
    errorDescription.resize(size);
    libfptr_error_description(fptr, &errorDescription[0], errorDescription.size());
}

std::wcout << L"Ошибка - " 
           << errorCode 
           << L" [" << std::wstring(&errorDescription[0]) << L"]" 
           << std::endl;
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2284
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

ATOL драйвер 10.4.2

Сообщение Дед Пахом » 18 Январь 2019, 12:03

А что это значит?
Admin писал(а):
18 Январь 2019, 10:36
Не могу получить CSTRING из библиотеки.
Там вроде не CSTRING по логике, а STRING, причём в юникоде.
С уважением, ДП

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

ATOL драйвер 10.4.2

Сообщение Admin » 21 Январь 2019, 3:16

Дед Пахом писал(а):
18 Январь 2019, 12:03
STRING, причём в юникоде
Да спасибо, так и оказалось. До этого пробовал CSTRING в юникоде. Про string что то не подумал.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса

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

ATOL драйвер 10.4.2

Сообщение Admin » 21 Январь 2019, 5:16

Как обычно поспешил. Все как обычно сишными DLL - CSTRING!
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса

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

ATOL драйвер 10.4.2

Сообщение Admin » 26 Июнь 2019, 15:41

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

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

ATOL драйвер 10.4.2

Сообщение vic7tar » 26 Июнь 2019, 16:12

Ну если такое объявление:
DTOX_SHARED_EXPORT int DTOX_SHARED_CCA libfptr_error_description(libfptr_handle handle, wchar_t *value, int size);
то думаю, что должно быть такое объявление в кларионе:
libfptr_error_description(LONG fptr, *STRING pValue, LONG lValueSize),LONG,RAW,C,PROC
а строку передавать нужно в UTF16.
C10, Win10x64

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

ATOL драйвер 10.4.2

Сообщение Admin » 26 Июнь 2019, 16:23

vic7tar писал(а):
26 Июнь 2019, 16:12
Ну если такое объявление
Уже все давно решено. Динамическая загрузка и т.д.
Сильно не спешу. Впереди полгода.
Просто спросил может кто уже все сделал :-)
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса

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

ATOL драйвер 10.4.2

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

Admin писал(а):
26 Июнь 2019, 16:23
Уже все давно решено. Динамическая загрузка и т.д.
Круто ! Подскажете с чего вообще начать работу с ДТО10 ?
«V» значит Вендетта !

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

ATOL драйвер 10.4.2

Сообщение Admin » 27 Июнь 2019, 1:59

Игорь Столяров писал(а):
26 Июнь 2019, 19:53
С чего вообще начать работу с ДТО10
Здесь качаем последний драйвер

Распаковываем.
В файле doc\docs.zip отличная документация.
В папке installer\exe берем программу соотв. архитектуре и ставим.
Папку c:\Program Files\ATOL\Drivers10\KKT\bin помещаем в user path
Все процедуры и константы описаны в include\libfptr10.h

Ну и дальше по накатанному:
LoadLibrary('fptr10.dll')
GetProcAddress(...)
и т.д.

Строки как ниже и писалось перед отдачей в драйвер MultiByteToWideChar(1251,...)
После приема из него WideCharToMultiByte(1251,...)
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса

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

ATOL драйвер 10.4.2

Сообщение Игорь Столяров » 28 Июнь 2019, 8:59

Спасибо - направление работ понятно.
Как я понимаю, здесь самое сложное для StartUp - это конвертнуть навороченный сишный libfptr10.h с описаниями
прототипов в кларионовский аналог libfptr10.inc … Знание C у меня конечно есть, но хромает на обе ноги. :)
«V» значит Вендетта !

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

ATOL драйвер 10.4.2

Сообщение Admin » 28 Июнь 2019, 10:01

Игорь Столяров писал(а):
28 Июнь 2019, 8:59
самое сложное
Нет.
Вот сейчас полдня бьюсь с libfptr_get_param_bytearray, вот это да...
Нужно для составных атрибутов. Ни хрена не работает.
Или уже за день мозг забил.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса

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

ATOL драйвер 10.4.2

Сообщение finsoftrz » 28 Июнь 2019, 19:24

А не поддерживается opos драйвер, как в dto8? Вроде в доке написано, что можно создать activeX (ole) объект и работать через него.
Рязань решает.

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

ATOL драйвер 10.4.2

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

finsoftrz писал(а):
28 Июнь 2019, 19:24
что можно создать activeX (ole)
Я вот это место как раз и пробовал в ДТО10 …
Но похоже же что в АТОЛ так интересно называют COM интерфейс, а это совсем другая история. :(
«V» значит Вендетта !

Ответить