Вернуть 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д