Вернуть HANDLE по указателю (Функция под WIN для открытия порта) - C (СИ)
Формулировка задачи:
Пытаюсь написать функцию под WIN для открытия порта.
WinNT.h определено, typedef void *HANDLE;
Как правильно вернуть из функции дескриптор порта по указателю?
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;
}Решение задачи: «Вернуть HANDLE по указателю (Функция под WIN для открытия порта)»
textual
Листинг программы
HANDLE* pSerialPortFd