ATOL драйвер 10.4.2

Clarion, Clarion 7

Модератор: Дед Пахом

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

ATOL драйвер 10.4.2

Сообщение 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
Администратор
Сообщения: 3345
Зарегистрирован: 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
Администратор
Сообщения: 3345
Зарегистрирован: 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;
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса

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

ATOL драйвер 10.4.2

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

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

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

ATOL драйвер 10.4.2

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

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

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

ATOL драйвер 10.4.2

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

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

Ответить