Вернуть 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 для открытия порта) - C (СИ)»

textual
HANDLE* pSerialPortFd

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

9   голосов, оценка 3.889 из 5


СОХРАНИТЬ ССЫЛКУ