Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2014, 09:42   #1
Грендайзер
Пользователь
 
Регистрация: 15.10.2013
Сообщений: 29
Стрелка Заполнение буфера

Здравствуйте, товарищи. Всем доброго понедельника или иного дня недели Вопросик у меня такой:
Я написал код программы с использованием ф-ций winapi. Программка представляет из себя окошко с кнопками. При нажатии на к-л кнопку происходит запись буфера данных в com порт. При этом при нажатии на разные кнопки байты в буффере так же меняются. Сначала я всё делал в лоб а именно - в обработчике сообщений от окна (структура MSG msg) в операторе switch просто присваивал байтам разные значения. Вот кусок кода обработчика:
PHP код:
LRESULT CALLBACK WndProc(HWND hMainWndUINT msgWPARAM wParamLPARAM lParam)
switch (
LOWORD(wParam))
{
........................................
case 
ID_Temper:
{
BufTx[0] = 0x55;
BufTx[1] = 0x01;
................................. 
ID_Temper - это индентификатор кнопки. Реально байт намного больше, и кол-во кнопок оказалось таково, что программа стала малех громоздкая.
Вот я и решил написать вот такую подпрограммку
PHP код:
void TxMPPU(UINT msg)
{
    switch(
msg)
    {
        case 
ID_Temper:
        {
            
BufTx[0] = 0x55;
            
BufTx[1] = 0x01;
            
BufTx[2] = 0x5;
            
BufTx[3] = 0x02;
            
BufTx[4] = 52;
            break;
.................................................... 
и вынести ее в отдельный файлик. Но значение байтов не изменяется и в порт пишется начальное значение буфера. Может кто подскажет?
Грендайзер вне форума Ответить с цитированием
Старый 17.02.2014, 11:14   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Явно в каждом файлике свой BufTx.
waleri вне форума Ответить с цитированием
Старый 17.02.2014, 11:25   #3
Грендайзер
Пользователь
 
Регистрация: 15.10.2013
Сообщений: 29
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Явно в каждом файлике свой BufTx.
В смысле? Т.е. как явно в каждом файле?
Грендайзер вне форума Ответить с цитированием
Старый 17.02.2014, 12:33   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

В прямом.
Вы меняете один буфер а отправляете другой.
Другой вариант - вызываете TxMPPU() не тем параметром, соотвественно буфер вообще не меняется.
Не имея кода ничего больше сказать нельзя, можно только гадать и строить предположения.
waleri вне форума Ответить с цитированием
Старый 17.02.2014, 13:07   #5
Грендайзер
Пользователь
 
Регистрация: 15.10.2013
Сообщений: 29
По умолчанию

Код у меня вышел большой и трудный для чтения (я новичок в этом деле) потому и не стал его полностью приводить. А сейчас просто ввёл новую переменную и присваиваю ей идентификаторы соответствующих кнопок и в подпрограмме TxMPPU() уже проверяю значение этой переменной. Вообщем спасибо за помощь))
Грендайзер вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
переполнение буфера freekyn Помощь студентам 3 25.04.2013 17:21
Попиксельное заполнение буфера loh Qt и кроссплатформенное программирование С/С++ 0 21.12.2011 22:05
переполнение буфера goluzov Общие вопросы C/C++ 21 28.11.2011 09:04
переполнение буфера Dimarik Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 13.07.2011 02:24
печать из буфера Марксист Общие вопросы Delphi 2 28.07.2008 14:00