C ++ Builder — Открытие CashDrawer в переполнении стека

На моем рабочем месте мы используем собственное программное обеспечение Point Of Sales, которое работает с Epson Printers TM-U950s, подключенными к 3nStar Mini Cashdrawers. Пока что, когда речь идет о наличных, программное обеспечение отправляет команду на принтер, чтобы открыть CashDrawer.

Вот код для этого:

void M::OpenDrawer()
{
FILE *stream;
try {
stream = fopen("LPT1", "w");
fprintf(stream, "%c%c%c%c%c", char(27), char(112), char(0), char(50), char(250));
fclose(stream);
} catch(Exception &E) {
Application->ShowException(&E);
fclose(stream);
}
}

Наше ПО для POS все это время работало на Windows XP, но нам удалось обновить его, чтобы оно могло работать на Windows 10. Однако предыдущая команда работать не будет. Когда TM-U950 устанавливается, в отличие от Windows XP, где он использует существующий порт LPT1, в Windows 10 он создает свой собственный порт ESDPRT001. Я пытался изменить код с

stream = fopen("LPT1", "w");

в

stream = fopen("ESDPRT001", "w");

Но это не откроет Cashdrawer. Я уже искал несколько веб-сайтов, чтобы проверить, изменилась ли команда epson или нет, или мы действительно используем правильный, и мы. (Увидеть http://www.itsmetor.com/wp/epson-esc-commands/)

Короче говоря, мне нужна помощь, чтобы выяснить, является ли эта функция правильной для использования при отправке прямой команды на порт LPT1, чтобы она могла открывать Cashdrawer, или нет, и, если возможно, какие-либо рекомендации по ее исправлению.

Спасибо.

0

Решение

Задача ещё не решена.

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

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

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