Есть программа на Qt5 и на Linux она работает великолепно и стабильно. На богомезком офтопе простейший последовательный порт через QSerialPort работает вроде нормально. Но как только я пытаюсь встроить работу с портом используя прости господи win api - программы отказываются открывать порт по имени:
CreateFile(L"\\\\.\\COM4", ...
\\Device\\ProlificSerial0
\\Device\\Silabser0d"
Так вот, как только я запускаю нативный С++ код win api он выдает ошибку 5 - access denied. Я пытаюсь встроить работу с портом в приложение с Unreal Engine 4.
После запуска в рамках приложение UE4 программа на Qt5 и QSerialPort тоже прекращает работать и при попытках открыть порт вещает: ERROR: can't open port «COM4» «Отказано в доступе.»
Что делать? Заказчик согласился в скором времени перейти на Linux, благо UE4 на Linux я собрать смог. Но чтобы Linux победил в этой фирме - сначала нужно чтобы заработало в оффтопе. Помогите, пожалуйста, кто знает как с этим бороться? Что я делаю не так, какие права не выставляю? Запускаю же под админом - ну что может быть ацесснее?
Почему не винфак? Я нигде не шляюсь по виндовым ресурсам, увы, не знаю даже где вопрос задать. Просто хочу чтобы уважаемая публика видела насколько мерзкая эта платформа офтоп10, и вообще офтоп как таковой. Я пишу в 99% случаев кроссплатформенные программы и за рамки Qt5 мне редко приходится выходить, и добрый Qt оберегает мою психику от всех ужасов и недостаткой форточной платформы.
Добавлено: потыкался с QSerialPort - можно хоть сто раз загружать программу и порт всегда нормально открывается. Т.е. Qt5 действительно корректно работает и позволяет обращаться по именами «старого стиля» типа COM4. Первое же обращение через CreateFile и всё - бобик сдох.