Как настроить типы заметок в XFS с помощью команды ‘WFS_CMD_CIM_CONFIGURE_NOTETYPES’

Я хочу настроить конкретные типы заметок во время операции с наличными

Входной параметр должен иметь следующий формат: LPUSHORT lpusNoteIDs;

Когда я выполняю следующие команды, я получаю ошибку неверных данных (-52)

LPUSHORT* lpusNoteIDs;
lpusNoteIDs = (LPUSHORT*)malloc(7*sizeof(LPUSHORT));
for(int i =0;i<7;i++)
{
lpusNoteIDs[i]=(LPUSHORT)malloc(sizeof(USHORT));
}

lpusNoteIDs[0] = (LPUSHORT)0x2700;
lpusNoteIDs[1] = (LPUSHORT)0x2710;
lpusNoteIDs[2] = (LPUSHORT)0x2701;
lpusNoteIDs[3] = (LPUSHORT)0x2711;
lpusNoteIDs[4] = (LPUSHORT)0x2721;
lpusNoteIDs[5] = (LPUSHORT)0x2732;
lpusNoteIDs[6] = (LPUSHORT)0x2704;
hResult = WFSExecute(hService, WFS_CMD_CIM_CONFIGURE_NOTETYPES, (LPVOID)lpusNoteIDs, 400000, &res);
return (int)hResult;

Я даже попробовал приведенный ниже код, но он дает мне ту же ошибку

LPUSHORT* lpusNoteIDs;
USHORT abc[]={1000,9985,10001,10017,10034,9988};
lpusNoteIDs=(LPUSHORT*)abc;
hResult = WFSExecute(hService, WFS_CMD_CIM_CONFIGURE_NOTETYPES,(LPVOID)lpusNoteIDs, 600000, &res);
return (int)hResult;

В Спецификация реализации поставщика услуг CIM В документе говорится:

lpusNoteIDs: -Показатель на окончательный список неподписанных шорт, который содержит идентификаторы банкнот.

Любая помощь относительно того, как значения должны быть переданы, была бы очень полезна.
Заранее спасибо.

0

Решение

Вы должны использовать функции WFMAllocate и WFMAllocateMore, чтобы выделить память для структур XFS и передать ее между приложением и поставщиком услуг.
Ваш пример ниже:

LPUSHORT lpusNoteIDs = NULL;
const int countNotes = 7;
// Always use WFMAllocate* functions for XFS memory allocation
WFSRESULT hr = WFMAllocateBuffer(sizeof(USHORT)*(countNotes+1), WFS_MEM_ZEROINIT|WFS_MEM_SHARE, (void**)&lpusNoteIDs);

// Fill note ID's
lpusNoteIDs[0] = (USHORT)0x2700;
lpusNoteIDs[1] = (USHORT)0x2710;
lpusNoteIDs[2] = (USHORT)0x2701;
lpusNoteIDs[3] = (USHORT)0x2711;
lpusNoteIDs[4] = (USHORT)0x2721;
lpusNoteIDs[5] = (USHORT)0x2732;
lpusNoteIDs[6] = (USHORT)0x2704;

hr = WFSExecute(hService, WFS_CMD_CIM_CONFIGURE_NOTETYPES, (LPVOID)&lpusNoteIDs, 400000, &res);
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector