В WindowsCE, проекте C ++, я пытаюсь работать с устройствами, подключенными как через «настоящие» последовательные порты, так и / или через последовательные порты в USB («виртуальные» последовательные порты); моя проблема в том, что когда я пытаюсь открыть порт, если что-то идет не так, функция никогда не возвращается, и система переходит в не отвечающее состояние и должна быть в конечном итоге перезагружена. Мне нужно открыть порты из основного потока. Вопрос в том, как сделать это контролируемым образом?
это фрагмент кода открытия:
std::ostringstream device_name;
device_name << "\\\\.\\COM" << port;
m_port = ::CreateFile(device_name.str().c_str(),
GENERIC_READ | GENERIC_WRITE,
0, // exclusive access
NULL, // no security
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED, // overlapped I/O
NULL); // null template
любые предложения будут с благодарностью
спасибо!