HANDLE port;
port = CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,0);
if(port == INVALID_HANDLE_VALUE)
{
senMessage("Не возможно открыть последовательный порт", INBOX);
}
else
{
senMessage("Ком порт открылся", INSTATUSBAR);
CloseHandle(port);
}
В компе имеется
Com1 — встроенный в материнку сомпорт
Com5, Com6 — два порта на мультеплате
Com14, Com15 — два порта на USR<->RS232 преобразователе.
Если пытаюсь создать port Com5 или Com6 — то всё нормально создается. А при попытке создать port 1-ый, 14-ый или 15-ый, то port == INVALID_HANDLE_VALUE. Порты все рабочие, проверял гипертерминалом и другими программами.
В чем может быть поблемма?
ps Есть какой-нибудь класс для работы с последовательным портом в C++ Builder-e?
02.06.10 16:52: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Работал с портом (правда, это было достаточно давно), но не припоминаю, чтобы ставил флаги OPEN_EXISTING и атрибуты. Версия Винды-то какая? 98/XP/Vista ?
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
Работал с ком-портами но уже давненько (кстати как раз из дебилдера). Сходу ничего криминального в твоем коде не вижу.
1. Что возвращает GetLastError?
2. Может эти порты уже кто-то другой открыл?
3. Offtop. Overlaped сильно нужен? Просто без него на порядок проще.
J>В компе имеется J>Com1 — встроенный в материнку сомпорт J>Com5, Com6 — два порта на мультеплате J>Com14, Com15 — два порта на USR<->RS232 преобразователе.
J>Если пытаюсь создать port Com5 или Com6 — то всё нормально создается. А при попытке создать port 1-ый, 14-ый или 15-ый, то port == INVALID_HANDLE_VALUE. Порты все рабочие, проверял гипертерминалом и другими программами. J>В чем может быть поблемма?
J>ps Есть какой-нибудь класс для работы с последовательным портом в C++ Builder-e?
Здравствуйте, Аноним, Вы писали: А>А кроме win api,,,,,, как еще пожно работать с компортом в Windows XP?
В XP (точнее в NT) никак. Можно через готовые компоненты, но они внутри все равно WinAPI дергают.