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

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

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

Пытаюсь написать функцию под WIN для открытия порта.
Листинг программы
  1. int OpenSerialPort(char *SerialPort, int PortSpeed, HANDLE SerialPortFd) {
  2. DCB dcbSerialParams = {0};
  3. SerialPortFd = CreateFileA(SerialPort,
  4. GENERIC_READ|GENERIC_WRITE,
  5. 0,
  6. NULL,
  7. OPEN_EXISTING,
  8. 0,
  9. NULL);
  10. if(SerialPortFd == INVALID_HANDLE_VALUE) {
  11. MyPrintf(DEBUG, 0, "OpenSerialPort: failed \n");
  12. return -1;
  13. }
  14.  
  15. dcbSerialParams.DCBlength = sizeof(dcbSerialParams);
  16. if (!GetCommState(SerialPortFd, &dcbSerialParams)) {
  17. return -1;
  18. }
  19. dcbSerialParams.BaudRate =PortSpeed;
  20. dcbSerialParams.ByteSize =8;
  21. dcbSerialParams.StopBits =ONESTOPBIT;
  22. dcbSerialParams.Parity =NOPARITY;
  23. if(!SetCommState(SerialPortFd, &dcbSerialParams)) {
  24. return -1;
  25. }
  26. return 1;
  27. }
WinNT.h определено, typedef void *HANDLE; Как правильно вернуть из функции дескриптор порта по указателю?

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

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

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


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

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

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

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

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

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы