Здравствуйте, уважаемые.
Использую CreateFile для открытия последовательных портов. При этом она очень странно себя ведет. При открытии портов COM1 ... COM9 ведет себя нормально, а при попытке открыть порты COM10 и выше все время возвращает ошибку и устанавливает код 2 — типа не может найти указанный порт. Хотя этот порт точно есть! В чем может быть причина??
Заранее благодарен,
mailto:dimon-main@mail.ru
Здравствуйте, Master-Win, Вы писали:
MW>Использую CreateFile для открытия последовательных портов. При этом она очень странно себя ведет. При открытии портов COM1 ... COM9 ведет себя нормально, а при попытке открыть порты COM10 и выше все время возвращает ошибку и устанавливает код 2 — типа не может найти указанный порт. Хотя этот порт точно есть! В чем может быть причина??
LD>>Попробуй открыть COM порт c именем вида: \\.\COM10
MW>Все заработало!! Большое спасибо. Не могли бы объяснить почему без дополнительных символов в начале не работает. Почитал в MSDN — ничего об этом не нашел
Дык в MSDN англицким по белому написано:
To specify a COM port number greater than 9, use the following syntax: "\\.\COM10". This syntax works for all port numbers and hardware that allows COM port numbers to be specified.
http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx
А не работает потому, что COM1...COM9 это зарезервированные виндой ссылки на порты, по которым их можно открыть. Полный список таких имен:
CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9
http://msdn.microsoft.com/en-us/library/aa365247.aspx
Как видите COM10 в этом списке нет )