Форум программистов, компьютерный форум CyberForum.ru

Вывод содержимого структуры COMMPROP на консоль - C++

Восстановить пароль Регистрация
 
Simulkin Stas
75 / 75 / 2
Регистрация: 02.12.2011
Сообщений: 293
18.06.2014, 09:54     Вывод содержимого структуры COMMPROP на консоль #1
...доброго времени суток, уважаемые форумчане!... не могу понять как вывести содержимое структуры на экран...вот фрагмент кода:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// COM_1.cpp: определяет точку входа для консольного приложения.
//
// #include <conio.h>
#include "stdafx.h"
#include <windows.h>
#include <iostream>
using namespace std;
 
 HANDLE hSerial;
 COMMPROP *pr; 
int _tmain(int argc, _TCHAR* argv[])
{
LPCTSTR sPortName = L"COM1"; 
    hSerial = ::CreateFile(sPortName, GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
 
   if(hSerial==INVALID_HANDLE_VALUE)
    {
      if(GetLastError()==ERROR_FILE_NOT_FOUND)
        {
           cout << "Serial port does not exist.\n";
        }
       cout << "Some other error occurred.\n";
    }
 
 DCB dcbSerialParams = {0};
 dcbSerialParams.DCBlength=sizeof(dcbSerialParams);
  if (!GetCommState(hSerial, &dcbSerialParams))
   {
      cout << "Getting state error\n";
   }
 dcbSerialParams.BaudRate=CBR_9600;
 dcbSerialParams.ByteSize=8;
 dcbSerialParams.StopBits=ONESTOPBIT;
 dcbSerialParams.Parity=NOPARITY;
  if(!SetCommState(hSerial, &dcbSerialParams))
   {
      cout << "Error setting serial port state\n";
   }
 
  pr=(COMMPROP*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(COMMPROP)); 
   GetCommProperties(hSerial, pr); 
  if(pr->wPacketLength != sizeof(COMMPROP)) 
   {
    { 
       pr=(COMMPROP*)HeapReAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,pr,pr->wPacketLength); 
       pr->dwProvSpec1=COMMPROP_INITIALIZED; 
       GetCommProperties(hSerial,pr); 
    }
 
//. . . Вывод содержимого структуры COMMPROP
 
HeapFree(GetProcessHeap(),0,pr); 
CloseHandle(hSerial); 
//. . . 
 }
     system("pause");
    return 0;
}
...т. е., что нужно дописать вместо строки № 50 данного фрагмента...
...а вот сама структура:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 typedef struct _COMMPROP {{ 
WORD wPacketLength; // packet size, in bytes 
WORD wPacketVersion; // packet version 
DWORD dwServiceMask; // services implemented 
DWORD dwReserved1; // reserved 
DWORD dwMaxTxQueue; // max Tx bufsize, in bytes 
DWORD dwMaxRxQueue; // max Rx bufsize, in bytes 
DWORD dwMaxBaud; // max baud rate, in bps 
DWORD dwProvSubType; // specific provider type 
DWORD dwProvCapabilities; // capabilities supported 
DWORD dwSettableParams; // changable parameters 
DWORD dwSettableBaud; // allowable baud rates 
WORD wSettableData; // allowable byte sizes 
WORD wSettableStopParity; // stop bits/parity allowed 
DWORD dwCurrentTxQueue; // Tx buffer size, in bytes 
DWORD dwCurrentRxQueue; // Rx buffer size, in bytes 
DWORD dwProvSpec1; // provider-specific data 
DWORD dwProvSpec2; // provider-specific data 
WCHAR wcProvChar[1]; // provider-specific data 
} COMMPROP;
... это стандартная структура с описанием возможностей порта... заранее благодарен за ответ...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2014, 09:54     Вывод содержимого структуры COMMPROP на консоль
Посмотрите здесь:

C++ Вывод содержимого в файле
C++ Вывод в консоль\файл
C++ Вывод чисел на консоль
C++ Вывод содержимого map
C++ Вывод массива на консоль
Вывод содержимого файла C++
Вывод строки в консоль C++
Вывод структуры, строка как элемент структуры C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4316 / 3737 / 1260
Регистрация: 14.04.2014
Сообщений: 14,661
18.06.2014, 14:11     Вывод содержимого структуры COMMPROP на консоль #2
C++
1
cout << pr->wPacketLength;
и т. д.
Yandex
Объявления
18.06.2014, 14:11     Вывод содержимого структуры COMMPROP на консоль
Ответ Создать тему
Опции темы

Текущее время: 15:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru