Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580

Подключение библиотек исходик есть (СОМ порт)

14.07.2013, 17:53. Показов 852. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята помогите я до этого программировал на Delphi сейчас очень быстро нужно перескочить на С++ трудновато, у меня есть исходник см. ниже, помогите создать форму под него какие библиотеки подключать и если можно откомпиленый и исходный вариант в архиве сюда я буду сам разбираться далее огромное спасибо

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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
CComPort::CComPort(CString& sComPort)
{
    m_sComPort = sComPort;
    m_bPortReady = FALSE;
} // конец конструктора CComPort
 
CComPort::~CComPort()
{
 
} // конец деструктора CComPort
 
//
// инициализация COM порта
//
BOOL CComPort::Initialize()
{
    DWORD   dwRC;
    DWORD   dwError;
    char    sMsg[512];
 
    m_bPortReady = TRUE; // всё OK
 
    m_hCom = CreateFile(m_sComPort, 
        GENERIC_READ | GENERIC_WRITE,
        0, // экслюзивно занимаем порт
        NULL, // no security
        OPEN_EXISTING,
        0, // no overlapped I/O
        NULL); // null template
 
    if (m_hCom == INVALID_HANDLE_VALUE)
    {
        m_bPortReady = FALSE;
        dwError = GetLastError();
        
        // обработка ошибки
        LPVOID lpMsgBuf;
        lpMsgBuf = NULL;
        dwRC = FormatMessage( 
            FORMAT_MESSAGE_ALLOCATE_BUFFER | 
            FORMAT_MESSAGE_FROM_SYSTEM | 
            FORMAT_MESSAGE_IGNORE_INSERTS,
             NULL,
            dwError, //  из GetLastError(),
            MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // 
            (LPTSTR) &lpMsgBuf,
            0,
            NULL);
        
        if (dwRC && lpMsgBuf)
        {
            sprintf(sMsg, "COM open failed: Port=%s Error=%d - %s",
                m_sComPort, dwError, lpMsgBuf);
            AfxMessageBox(sMsg);
        }
        else
        {
            sprintf(sMsg, "COM open failed: Port=%s Error=%d ",
                m_sComPort, dwError);
            AfxMessageBox(sMsg);
        } // end if
        if (dwRC && lpMsgBuf)
        {
            LocalFree( lpMsgBuf );
        } // end if
 
    } // end if
 
    if (m_bPortReady)
    {
        m_bPortReady = SetupComm(m_hCom, 
                128, 128); // размер буфера
        if (!m_bPortReady)
        {
            dwError = GetLastError();
            sprintf(sMsg, "SetupComm failed: Port=%s Error=%d",
                m_sComPort, dwError);
            AfxMessageBox(sMsg);
            
        } // end if
    } // end if
 
    if (m_bPortReady)
    {
        m_bPortReady = GetCommState(m_hCom, &m_dcb);
        if (!m_bPortReady)
        {
            dwError = GetLastError();
            sprintf(sMsg, "GetCommState failed: Port=%s Error=%d",
                m_sComPort, dwError);
            AfxMessageBox(sMsg);
        } // end if
    } // end if
 
    if (m_bPortReady)
    {
        m_dcb.BaudRate = 9600;
        m_dcb.ByteSize = 8;
        m_dcb.Parity = NOPARITY;
        m_dcb.StopBits = ONESTOPBIT;
        m_dcb.fAbortOnError = TRUE;
 
        m_bPortReady = SetCommState(m_hCom, &m_dcb);
        if (!m_bPortReady)
        {
            dwError = GetLastError();
            sprintf(sMsg, "SetCommState failed: Port=%s Error = %d",
                m_sComPort, dwError);
            AfxMessageBox(sMsg);
        }
    } // end if
 
    if (m_bPortReady)
    {
        m_bPortReady = GetCommTimeouts (m_hCom, &m_CommTimeouts);
        if (!m_bPortReady)
        {
            dwError = GetLastError();
            sprintf(sMsg, "GetCommTimeouts failed: Port=%s Error = %d",
                m_sComPort, dwError);
            AfxMessageBox(sMsg);
        } // end if
    } // end if
 
    if (m_bPortReady)
    {
        m_CommTimeouts.ReadIntervalTimeout = 50;
        m_CommTimeouts.ReadTotalTimeoutConstant = 50;
        m_CommTimeouts.ReadTotalTimeoutMultiplier = 10;
        m_CommTimeouts.WriteTotalTimeoutConstant = 50;
        m_CommTimeouts.WriteTotalTimeoutMultiplier = 10;
        m_bPortReady = SetCommTimeouts (m_hCom, &m_CommTimeouts);
        if (!m_bPortReady)
        {
            dwError = GetLastError();
            sprintf(sMsg, "SetCommTimeouts failed: Port=%s Error = %d",
                m_sComPort, dwError);
            AfxMessageBox(sMsg);
        } // end if
    } // end if
 
    return m_bPortReady;
} // end CComPort::Initialize
 
 
//
// освобождаем COM порт
//
void CComPort::Terminate()
{
    CloseHandle(m_hCom);
} /
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.07.2013, 17:53
Ответы с готовыми решениями:

Перенаправление СОМ-порт в сеть
Доброго времени суток, Я во время написания дипломного проекта столкнулся со следующей проблемой: Необходимо написать службу Windows,...

Как отследить результат отправки символа в СОМ порт?
Пишу программу прошивки прибора через СОМ порт. Обязательно требуется убедиться в получении прибором очередного символа, прежде чем...

Примеры использования Async Free (СОМ-порт) или Async Pro (СОМ-порт)
Здравствуйте! Скажите пожалуйста есть пример где используют Async Free (СОМ-порт) или Async Pro (СОМ-порт)? почему то не могу найти и...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.07.2013, 17:53
Помогаю со студенческими работами здесь

Подключение USB CDC Device. Не могу открыть СОМ-порт. Ошибка: ".устройство не работает"
Всем здравствуйте! Пишу программу на C# под Win7 в Visual Studio 2013. Требуется подключить считыватель ключей Tauch Memory и брелков...

Запись в СОМ-порт
Здравствуйте! Столкнулся с проблемой: Для общения с com-портом, разумеется, необходимо слать ему команды. Для того чтобы устройство...

СОМ порт прога
:wall:Пожалуйста, подскажите как создать прогу работающую с СОМ портом

Как распараллелить Сом порт?
Не нашел в какой раздел написать. Вопрос вот какой, есть живой МК Tibbo 1206 http://www.tibbo.ru/products/item/6/20/ , у него 4 Сом порта....

СОМ порт прием данных
Доброй ночи. Есть устройство с RS232 которое отсылает некоторые данные. Пример кода роботы с СОМ портом взял с книги Архангельский...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru