naraayanan Ответов: 1

Доступ к COM-порту >10


Привет Друзья,
Я новичок в C++.Сейчас я работаю в проекте COM-порта. У меня есть DLL-файл для доступа к данным COM-порта(отправка и получение).Теперь я получаю доступ от COM1 до COM9.но я не могу получить доступ выше COM10.почему?как я могу решить эту проблему?пожалуйста,скажите мне.
Спасибо и с уважением
Нараянан.

Sergey Alexandrovich Kryukov

Природа ограничений более или менее ясна, но проблема выглядит немного запутанной. Мои 5 за этот вопрос.
--СА

1 Ответов

Рейтинг:
9

Hans Dietrich

CreateFile() может использоваться для доступа к последовательным портам с помощью "COM1" через "COM9" для имени файла; однако сообщение INVALID_HANDLE_VALUE возвращается, если вы используете "COM10" или выше.

Для портов > 9, правильный способ указать последовательный порт в вызове CreateFile() заключается в следующем:

CreateFile(
   "\\\\.\\COM10",     // address of name of the communications device
   fdwAccess,          // access (read-write) mode
   0,                  // share mode
   NULL,               // address of security descriptor
   OPEN_EXISTING,      // how to create
   0,                  // file attributes
   NULL);              // handle of file with attributes to copy


Кроме того, убедитесь, что устройство COM, к которому вы пытаетесь получить доступ, действительно установлено. Вы можете использовать бесплатную программу SIW для проверки этого: http://www.gtopala.com/[^]


Peter_in_2780

Я не могу найти его прямо сейчас, но была предыдущая тема на эту тему, где я указал, что под Vista, по какой-то причине #$%^ M$, вам нужно "запустить от имени администратора", чтобы получить доступ к \\.\COMxx XP работает нормально, не знаю о Weven.

Sergey Alexandrovich Kryukov

Мой 5.
--СА

naraayanan

Спасибо мой друг