QR - код
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- Прохожий
- Сообщения: 3
- Зарегистрирован: 06 Декабрь 2011, 15:00
- Admin
- Администратор
- Сообщения: 3959
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 25 раз
- Поблагодарили: 22 раза
- Контактная информация:
Re: QR - код
The RAW attribute of a PROCEDURE prototype specifies that STRING or GROUP parameters pass the memory address only. This allows you to pass just the memory address of a *?, STRING, or GROUP parameter, whether passed by value or by reference, to a non-Clarion language procedure or function. Normally, STRING or GROUP parameters pass the address and the length of the string. The RAW attribute eliminates the length portion. For a prototype with a ? parameter, the parameter is taken as a LONG but passed as a "void *" which just eliminates linker warnings. This is provided for compatibility with external library functions that expect only the address of the string.
If a function is prototyped with one of the following return types: ?, *? or *STRING, and the prototype has the RAW attribute, the return value is treated as a LONG.
Example:
If a function is prototyped with one of the following return types: ?, *? or *STRING, and the prototype has the RAW attribute, the return value is treated as a LONG.
Example:
Код: Выделить всё
MAP
MODULE('Party3.Obj') !A third-party library
Func46 PROCEDURE(*CSTRING),REAL,C,RAW !Pass CSTRING address-only to C function
END
END
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
- Admin
- Администратор
- Сообщения: 3959
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 25 раз
- Поблагодарили: 22 раза
- Контактная информация:
Re: QR - код
Вот сразу работающий код
Только куда сунуть l:shtr после рутинки я не знаю. Это к автору.
Только куда сунуть l:shtr после рутинки я не знаю. Это к автору.
Код: Выделить всё
PROGRAM
LPCSTR EQUATE(CSTRING)
DWORD EQUATE(ULONG)
WORD EQUATE(USHORT)
BOOL EQUATE(SIGNED)
LPSTR EQUATE(STRING)
MAP
MODULE('QRCode.LIB')
_enQRCode(*CSTRING, WORD, WORD, WORD) RAW, PASCAL, NAME('QRCodeEncode')
QRGetRows(), WORD, RAW, PASCAL, NAME('QRCodeGetRows')
QRGetCols(), WORD, RAW, PASCAL, NAME('QRCodeGetCols')
QRGetCharAt(WORD, WORD), WORD, RAW, PASCAL, NAME('QRCodeGetCharAt')
end
END
l:shtr CSTRING(4096)
l:mode WORD
l:rows WORD
l:errCorLev WORD
l:len BYTE
lo:rows WORD
lo:column WORD
CODE
DO set_shtr
MESSAGE(l:shtr)
set_shtr routine
l:shtr = '12345678901234567890'
l:mode = 2
l:errCorLev = 0
l:rows = 3
l:len = len(clip(l:shtr))
if l:len > 0
_enQRCode(l:shtr, l:mode, l:errCorLev, l:rows)
lo:rows = QRGetRows()
lo:column = QRGetCols()
l# = 1
loop i# = 0 to lo:rows - 1
loop j# = 0 to lo:column - 1
l:shtr[l#] = chr(QRGetCharAt(i#, j#))
l# += 1
end
l:shtr[l#] = '<13>'
l# += 1
l:shtr[l#] = '<10>'
l# += 1
end
l:shtr[l#] = '<0>'
end
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Re: QR - код
Уважаемый ADMIN, большое спасибо за уточненный пример, но, все же, при компиляции дает з ошибки:
Illegal return type or atribute!
на все три процедуры (QRGetRows(), WORD, RAW, PASCAL, Name, QRGetCols(), WORD, RAW, PASCAL, Name, QRGetCharAt(WORD,WORD), WORD, RAW, PASCAL, Name),
которые вставлены в Global MAP, и курсор стоит вначале RAW
С уважением, ABBASoft.
Illegal return type or atribute!
на все три процедуры (QRGetRows(), WORD, RAW, PASCAL, Name, QRGetCols(), WORD, RAW, PASCAL, Name, QRGetCharAt(WORD,WORD), WORD, RAW, PASCAL, Name),
которые вставлены в Global MAP, и курсор стоит вначале RAW
С уважением, ABBASoft.
- Admin
- Администратор
- Сообщения: 3959
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 25 раз
- Поблагодарили: 22 раза
- Контактная информация:
Re: QR - код
В проект добавляли LIB файл?
Какая версия Clarion?
Каков опыт работы с Clarion?, а то вопросы такие ...
P.S. Все это к тому что код, который я дал, скомпилирован и был запущен на C6.3
Какая версия Clarion?
Каков опыт работы с Clarion?, а то вопросы такие ...
P.S. Все это к тому что код, который я дал, скомпилирован и был запущен на C6.3
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
- Дед Пахом
- Старичок
- Сообщения: 3133
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 10 раз
- Поблагодарили: 28 раз
- Контактная информация:
Re: QR - код
Скорее всего тип WORD неопределён, надо заменить на USHORT:
WORD EQUATE(USHORT)
WORD EQUATE(USHORT)
С уважением, ДП
Re: QR - код
Уважаемый ADMIN, Ваша програмка у меня была вставлена в Application, библиотека была подцеgлена (определена) в Project.
но выдавало з ошибки. Теперь я сделал как у Вас (программа .clw + определил Project) и все Ок. Ваш пример заработал.
Почему он не работал в APP - не известно.
Но что теперь делать с содержимым в строке l:shtr??? Автор примера QR-кода, подскажите, пожалуйста, что делать дальше?
С уважением, ABBASoft.
но выдавало з ошибки. Теперь я сделал как у Вас (программа .clw + определил Project) и все Ок. Ваш пример заработал.
Почему он не работал в APP - не известно.
Но что теперь делать с содержимым в строке l:shtr??? Автор примера QR-кода, подскажите, пожалуйста, что делать дальше?
С уважением, ABBASoft.
Re: QR - код
l:shtr может быть размещено в форме, репорте как обычное edit-поле, но при этом необходимо указать шрифт , предварительно установив в систему(панель управления - шрифты), который включен в состав zip-файла.
Надо было мне приложить пример в TXA формате, но это только в понедельник.А впрочем лучше app целиком.
Надо было мне приложить пример в TXA формате, но это только в понедельник.А впрочем лучше app целиком.
Re: QR - код
Благодарим всех за отзывчивость (SVRU, ADMINa, Деда Пахома). Ждем от SVRU .app.
С уважением, ABBASoft.
С уважением, ABBASoft.
Re: QR - код
Уважаемый SVRU, большое спасибо за пример, но как из этого кода получить картинку?
Мне ее необходимо напечатать.
С уважением, ABBASoft (ABBASoft@ukr.net).
Мне ее необходимо напечатать.
С уважением, ABBASoft (ABBASoft@ukr.net).
Re: QR - код
Легче простого. Пример можно посмотреть тут. http://www.pisoft.ru/verstak/barfonts.htm Он отностися, конечно, к штрихкоду code-39, но принцип такой же.