Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Проблема с последовательными портами


Автор: thesnidestone 11.7.2005, 15:29
Есть код:
Код

                ...
    for(int i = 1; i < 64; i++)
    {
        if(i > 15)
        s.Format("COM%d",i);

        if(
            (h = CreateFile(_T(s),  
            GENERIC_READ | GENERIC_WRITE,       
            0,                                  
            NULL,                               
            OPEN_EXISTING,                      
            0,                                  
            NULL)) != INVALID_HANDLE_VALUE)
        {
            if(GetLastError() == ERROR_FILE_NOT_FOUND)


            CloseHandle(h);    
            h = NULL;
            m_COM.AddString(s);
            index++;
        }

    }
                ...


Назначение этого кода - обнаружить последовательные порты на компьютере. Код работает замечательно, если номера портов не превышают 10 (то есть COM1...COM9 определяются без проблем). Но приведенный код не определяет порты с номерами большими, чем 9 (COM 10 и т.д.). Есть ли какое-нибудь решение этой проблемы?

Большое спасибо.

PS Аналогичный код был написан на BCB с использованием компонента для работы с портами, при этом порты с номерами большими, чем 9 определить удалось.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)