Вернуть HANDLE по указателю (Функция под WIN для открытия порта) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Пытаюсь написать функцию под WIN для открытия порта.
int OpenSerialPort(char *SerialPort, int PortSpeed, HANDLE SerialPortFd) {
 
    DCB dcbSerialParams = {0};
 
    SerialPortFd = CreateFileA(SerialPort,
                      GENERIC_READ|GENERIC_WRITE,
                      0,                          
                      NULL,                      
                      OPEN_EXISTING,
                      0,                         
                      NULL);                     
 
    if(SerialPortFd == INVALID_HANDLE_VALUE) {
        MyPrintf(DEBUG, 0, "OpenSerialPort: failed \n");
        return -1;
    }

    dcbSerialParams.DCBlength = sizeof(dcbSerialParams);
    if (!GetCommState(SerialPortFd, &dcbSerialParams)) {
        
        return -1;
 
    }
    dcbSerialParams.BaudRate =PortSpeed;
    dcbSerialParams.ByteSize =8;
    dcbSerialParams.StopBits =ONESTOPBIT;
    dcbSerialParams.Parity =NOPARITY;
    if(!SetCommState(SerialPortFd, &dcbSerialParams)) {
        
        return -1;
    }
 
    return 1;
}
WinNT.h определено, typedef void *HANDLE; Как правильно вернуть из функции дескриптор порта по указателю?

Решение задачи: «Вернуть HANDLE по указателю (Функция под WIN для открытия порта)»

textual
Листинг программы
HANDLE* pSerialPortFd

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы