Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: С чего начать - нужно быстро сделать ПО под Windows  (Прочитано 17654 раз)
0 Пользователей и 1 Гость смотрят эту тему.
tugoboss
Интересующийся

ru
Offline Offline

« : 07-01-2010 20:51 » 

Здравствуйте!

Сам я программист-схемотехник устройств на микроконтроллерах. Пишу на языке С.

Постоянно встает задача, связать свои устройства с компьютером.
Нужно создать:
- несложное оконное приложение
- с парой кнопок
- работа с COM-портом
- данные от устройства визуализировать в виде графика, меняющего в реальном времени.

Сейчас изучаю С++, идёт сложновато.

Подскажите, какую среду выбрать для написания программ?

Коллега советует Microsoft Studio 6.0  и тип проекта "Приложение MFC".  Студия нагенерила кучу кода в пустом проекте, нифига не понятно.

Что делать?
- изучать С++ дальше и учить MFC
- использовать какую-то другую среду и библиотеку визуализации (есть какие то бесплатны). Но на Студию надо переходить когда-нибудь полюбому.
- ваш вариант?

Времени особенно нет, нужно сделать чтобы хоть как-то работала программа, она по сути тестовая.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 07-01-2010 20:57 » 

tugoboss, думаю, что с MFC забираться долго придется. Для быстро подойдет Delphi или Borland C++ Builder.
Бесплатных версий не знаю. MS VC с MFC тоже не бесплатная, замечу.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #2 : 07-01-2010 21:01 » 

tugoboss, с нуля действительно будет долговато разбираться... А так - MFC это самое оно. Если что спрашивай - подскажу, включая и по 6 студии )
Записан

tugoboss
Интересующийся

ru
Offline Offline

« Ответ #3 : 07-01-2010 21:10 » 

Спасибо, коллеги! Значит нужно собраться с силами Улыбаюсь

Алексей1153++, что посоветуете почитать для быстрого старта (в моей ситуации)? Книги по С++ есть, читаю.
Кстати, не смог найти ни одной книги по среде Visual Studio 6.0. По более поздним есть и много.

Дельфи это ж Паскаль, немного в сторону...
Записан
Вад
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 07-01-2010 21:35 » 

Ещё в качестве быстрого варианта может подойти .NET (VisualBasic или C#) - всё-таки, там попроще с управлением ресурсами, да и в целом, меньше лишних деталей. А для пары кнопок, работы с COM-портом и рисования графиков в .NET найдётся всё, что нужно. Но, конечно, это средство посовременнее, и не везде подойдёт.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 08-01-2010 05:56 » 

tugoboss, ну как бы 6-я студия считается устаревшей (ну есть чуток Улыбаюсь ), а вообще - читать там нечего, книг не знаю. Создаёшь проект MFC - и вперёд

.NET - быстро проектировать, но медленно будет работать, а кроме того будет не везде запускаться или придётся тащить с собой немалый по объёму фреймфорк. Лично я добровольно за .NET не сяду. Ну а попробовать тебе никто не мешает )
Записан

Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 08-01-2010 08:27 » 

Цитата: Алексей1153++
.NET - быстро проектировать, но медленно будет работать
Этим летом я выяснил и доказал заказчику, что данное утверждение - не более чем сплетни, распускаемые завистниками Улыбаюсь Скорость работы ниже, чем у кода на C++, примерно на 1-3%, и стиль кодирования больше влияет на производительность решения, чем разница в эффективности компиляторов. Ещё добавить к этому грамотную стратегию сборки мусора, и получится решение, аналогичное решению на C++, но с гораздо меньшими трудозатратами на написание и сопровождение.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #7 : 08-01-2010 08:44 » 

Dimka, не начинай холивар Улыбаюсь скорость работы любого проекта в первую очередь определяется квалификацией программера. именно из неё вытекают и стиль кодирования, и стратегии, и прочая муть. на великолепном борландовском компилере умудряются лабать монстров, которые грузятся по полчаса. в то время как тот же GlassFish на тормозной джаве с её виртуальной машиной спокойно тянет корпоративный документооборот Ага

по сабжу.

tugoboss, разбираться легче на примере. нагугли примеры на C++ для работы с ком-портом, задача у тебя типовая, не удивлюсь, если нароешь готовый монитор ком-порта с исходниками, и не один. выбери наиболее сходный с твоей задачей, и начинай потихоньку подкручивать под себя код. а конкретные детали реализации ребята всегда подскажут.
Записан

x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #8 : 08-01-2010 08:50 » 

tugoboss, думаю, что с MFC забираться долго придется. Для быстро подойдет Delphi или Borland C++ Builder.
Бесплатных версий не знаю. MS VC с MFC тоже не бесплатная, замечу.

Ром, а ты не путаешь? разве MS 2008 exPress платная? или на ней нельзя такое написать?
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #9 : 08-01-2010 09:29 » 

Игорь, она бесплатная, но в ней нет MFC.

зы В смысле - нет мастера проектов для создания приложений с использованием MFC.
« Последнее редактирование: 08-01-2010 09:33 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #10 : 08-01-2010 09:45 » 

Джон, т.е. в ней нельзя создать форму средствами виндового апи, кинуть на неё пару кнопок, создать и вывести панель, запустить таймер, открыть ком-порт как файл на чтение, по таймеру опрашивать комп-порт и отрисовывать график на панели?

я вообще не очень понимаю, зачем тут MFC, но С++ - не мой диагноз, к счастью Ага
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #11 : 08-01-2010 14:24 » 

Нет, речь не о том, что это можно сделать. Ессно это можно. Просто Рома поставил акцент именно на том, что Студия с поддержкой MFC - платная. Ты же имел ввиду экспрес версию, в которой её (MFC) нет.

А логика тут простая. Если уж поставлено условие С++ и Студия, то выбор тут небогатый - чистый Win API и MFC. Второй позволяет решать задачи построения UI гораздо проще и быстрее.
Собственно когда говорят о вижулстудии и С++, то практически всегда подразумевают MFC. Догма.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Вад
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #12 : 08-01-2010 18:10 » 

Кстати, поддержка .NET в Express-студии, если мне память не изменяет, полная, с полноценным редактором ресурсов и т.п. (собственно, наверное, с MFC - это такой пиар-ход дотНета Улыбаюсь )
Записан
x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #13 : 08-01-2010 18:54 » 

Джон, да ему же не менеджер скинов писать. панель, две кнопки (старт/стоп), чтение ком-порта и отрисовка по таймеру. понравится язык - воткнётся в MFC, torrents.ru никто пока не отменял. а там - всё есть. но на данном этапе... у парня - конкретная задача, не надо там лишнего городить, имхо Улыбаюсь захочет - нагородит сам.
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #14 : 08-01-2010 19:38 » 

Игорь, Улыбаюсь

Я просто отреагировал на:

Ром, а ты не путаешь? разве MS 2008 exPress платная?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #15 : 08-01-2010 20:33 » 

Джон, прости, друже, я просто нервенный какой-то в последнее время Ага
Записан

tugoboss
Интересующийся

ru
Offline Offline

« Ответ #16 : 14-01-2010 11:47 » 

Спасибо, нашел примеры, работаю с СОМ-портом.
Как по-простому нарисовать график?  У меня 24 датчика, соотв. 24 отсчета по горизонтали. Обычный график - линия, соединяющая точки.

Можно максимум просто(пока): всё в одном окне, нажимаю кнопку - график обновляется.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #17 : 14-01-2010 11:52 » 

tugoboss, данные как хранишь ?

можно применить std::vector<BYTE>

а рисовать на контексте при помощи CDC::PolyLine , предварительно рассчитав нужный огрызок значений в виде CPoint-точек
« Последнее редактирование: 14-01-2010 12:19 от Алексей1153++ » Записан

tugoboss
Интересующийся

ru
Offline Offline

« Ответ #18 : 14-01-2010 11:55 » 

Данные складываю в двумерный массив. Но это старые привычки, может можно как-то по-умнее, учитывая, что датчиков у меня много.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #19 : 14-01-2010 12:00 » 

примени вектор векторов - меньше путаницы будет для данного случая

std::vector< std::vector<DATAELEMENT> > m_Array;


где DATAELEMENT - структура одного элемента данных.

m_Array.Resize(N); - установишь 6 лучей данных

Для PolyLine тоже можно вектор вместо массива применить

std::vector<CPoint>

только при передаче в функцию осторожнее с размерами и синхронизировать нужно, если поток не один

Ещё - тебе в реальном времени желательно графики показывать или можно и позже ?
« Последнее редактирование: 14-01-2010 12:20 от Алексей1153++ » Записан

tugoboss
Интересующийся

ru
Offline Offline

« Ответ #20 : 14-01-2010 12:31 » 

Спасибо, буду разбираться.
Реалтайм не жесткий, задержка в 0.5 секунды допустима.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #21 : 14-01-2010 12:33 » 

за полсекунды можно много наворотить ) На среднем причём компе.
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines