Не работает программа?

403
09 августа 2017, 20:14
char inBuf[] = { 0x1d, 0x72, 0x01 }; //0x1d, 0x72, 0x01 //0x1b, 
0x05,0x50,0x00
int inBufSize = sizeof(inBuf);
DWORD ReturnedLength = 0, eror;
byte sim[256];
OVERLAPPED OverlapWRT;
OverlapWRT.OffsetHigh = 1;
OverlapWRT.Offset = 1;
OverlapWRT.hEvent = CreateEvent(NULL, false, false, NULL);
OVERLAPPED OverlapRD;
OverlapRD.OffsetHigh = 0;
OverlapRD.Offset = 0;
OverlapRD.hEvent = CreateEvent(NULL, false, false, NULL);

if (usbCB->SelectedItem !=nullptr) {
 // Создание файла USB
    pin_ptr<const wchar_t> wch = PtrToStringChars(usbCB->SelectedItem->ToString());
    bool y = hUsb = CreateFile(wch,
        GENERIC_READ | GENERIC_WRITE,
        FILE_SHARE_READ,
        NULL,
        OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,
        NULL);
    if (!y) {
        eror = GetLastError();
    }
}
if (comCB->SelectedItem != nullptr) {
// Создание файла COM
    pin_ptr<const wchar_t> wch = PtrToStringChars(comCB->SelectedItem-
 >ToString());
    bool y = hUsb = CreateFile(wch,
        GENERIC_READ | GENERIC_WRITE,
        FILE_SHARE_READ,
        NULL,
        OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,
        NULL);
    if (!y) {
        eror = GetLastError();
    }
}

if (hUsb == INVALID_HANDLE_VALUE)
{
    statusLB->Text = "Файл устройства не создан";
    return;
}

// очистка мусора порта
PurgeComm(hUsb, PURGE_RXCLEAR);
PurgeComm(hUsb, PURGE_TXCLEAR);
//Крнфигурация порта
DCB dcb;
dcb.DCBlength = sizeof(dcb);
dcb.BaudRate = CBR_9600;
dcb.fBinary = TRUE;
dcb.fOutxCtsFlow = FALSE;
dcb.fOutxDsrFlow = FALSE;
dcb.fDtrControl = DTR_CONTROL_HANDSHAKE;
dcb.fDsrSensitivity = FALSE;
dcb.fNull = FALSE;
dcb.fRtsControl = RTS_CONTROL_DISABLE;
dcb.fAbortOnError = FALSE;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
SetCommState(hUsb, &dcb);

 // Установка таймаута
COMMTIMEOUTS CommTimeOuts;
CommTimeOuts.ReadIntervalTimeout = 10;
CommTimeOuts.ReadTotalTimeoutMultiplier = 10;
CommTimeOuts.ReadTotalTimeoutConstant =10;
CommTimeOuts.WriteTotalTimeoutMultiplier = 10;
CommTimeOuts.WriteTotalTimeoutConstant = 10;
bool yes = SetCommTimeouts(hUsb, &CommTimeOuts);
if (!yes)
    eror = GetLastError();

 //Пишем
Success = WriteFile(hUsb, inBuf, inBufSize, &ReturnedLength, &OverlapWRT);
ReturnedLength = 0;
//Читаем
   Success = ReadFile(hUsb, &sim, sizeof(sim), &ReturnedLength, &OverlapRD);

Есть данная программа которая работает с принтером, проблема заключается в том что при попытке прочитать с ком порта ничего не происходит, но если запустить программу (ToolBox zebra) и отправить хотя бы один бай , а потом зайти в данную программу то все работает, файл читается ? как решить данный вопрос ?

READ ALSO
Перегрузка &ldquo;=&rdquo; для контейнера STL

Перегрузка “=” для контейнера STL

Нужно перегрузить оператор "=" (присваивания для следующих типов данных)

338
Статически слинковать zlib и boost

Статически слинковать zlib и boost

Как статически слинковать zlib с boostКомпилировал командой:

290
QTextEdit расширение по контенту

QTextEdit расширение по контенту

Есть QTextEdit с фиксированной ширинойНужно, чтобы при заполнении его текстом он расширялся вверх, однако просто включается скролл бар

311
Открытие слайдера slick в модальном окне

Открытие слайдера slick в модальном окне

Подскажите, допустим есть слайдер slick, выводящий карусель товаров, и при клике на определённом товаре нужно, чтобы выбранный товар открылся...

354