Привет Всем!
Потребовалось считать информацию о ФН (в частности, серийный номер ФН), посмотрел документацию, обратил внимание что вызов метода
fnQueryData() похож на
QueryData()
в
load_procedures.clw добавил:
Код: Выделить всё
cstr_libfptr_fn_query_data CSTRING('libfptr_fn_query_data')
в
procedure_eq.clw
Код: Выделить всё
_libfptr_fn_query_data_ LONG,STATIC,NAME('libfptr_fn_query_data')
...
cstr_libfptr_fn_query_data CSTRING('libfptr_fn_query_data')
в Global Map:
Код: Выделить всё
libfptr_fn_query_data(LONG fptr),LONG,RAW,C,PROC,DLL(_libfptr_fn_query_data_)
Создал локальную процедуру по аналогии с
QueryData() :
Код: Выделить всё
!- - = * = - - = * = - - = * = - - = * = - - = * = - - = * = - - = * = - -!
Atol10.fnQueryData PROCEDURE()!,LONG,PROC
!- - = * = - - = * = - - = * = - - = * = - - = * = - - = * = - - = * = - -!
CODE
IF ~ SELF.FlagLoaded THEN RETURN LIBFPTR_ERROR END
RETURN libfptr_fn_query_data(SELF.fptr)
!. . . . . к о н е ц п р о ц е д у р ы . . . . . .!
хочу получить серийный номер, вызываю:
Код: Выделить всё
LOC:fn_Serial STRING(25)
...
fnQueryData PROCEDURE(),LONG,PROC
CODE
ATOL.SetParamInt(LIBFPTR_PARAM_FN_DATA_TYPE, LIBFPTR_FNDT_FN_INFO)
ATOL.fnQueryData()
LOC:fn_Serial = ATOL.GetParamStr(LIBFPTR_PARAM_SERIAL_NUMBER)
MESSAGE('LOC:fn_Serial = ' & LOC:fn_Serial)
ошибок исполнения нет, но, к сожалению, серийный номер тоже не отображается (пусто)
При аналогичной операции с QueryData заводской номер отображается корректно, а вот при информации по ФН нет....
Пытаюсь который день, но никак не пойму в чем проблема?
Караул, Help!