Делимся опытом Наступив на грабли - сообщи другим! Обмен опытом разработки и ремонта электронных устройств. |
07.08.2011, 18:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.12.2009
Сообщений: 4,561
Сказал спасибо: 619
Сказали Спасибо 1,813 раз(а) в 974 сообщении(ях)
|
Re: Как научиться писать ПО под Win?
Что могу для Вас пояснить по теме? В статье пытался описать смысл объектного программирования. Что следует к тому добавить?
|
|
|
|
07.08.2011, 18:33
|
|
Гражданин KAZUS.RU
Регистрация: 03.12.2004
Сообщений: 932
Сказал спасибо: 824
Сказали Спасибо 609 раз(а) в 216 сообщении(ях)
|
Re: Как научиться писать ПО под Win?
идея - понятна
а вот написать что-то сложнее Hello word пока не могу
|
|
|
|
07.08.2011, 19:03
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.12.2009
Сообщений: 4,561
Сказал спасибо: 619
Сказали Спасибо 1,813 раз(а) в 974 сообщении(ях)
|
Re: Как научиться писать ПО под Win?
Извиняюсь конечно, но вполне естественен вопрос: на чем пишем?
|
|
|
|
07.08.2011, 19:06
|
|
Гражданин KAZUS.RU
Регистрация: 03.12.2004
Сообщений: 932
Сказал спасибо: 824
Сказали Спасибо 609 раз(а) в 216 сообщении(ях)
|
Re: Как научиться писать ПО под Win?
пока хоть немного въехал в VB
но, учитывая, что не прикасался к этой тему больше года, уже всё позабыто
|
|
|
|
07.08.2011, 19:25
|
|
Временная регистрация
Регистрация: 29.03.2005
Сообщений: 86
Сказал спасибо: 6
Сказали Спасибо 45 раз(а) в 21 сообщении(ях)
|
Re: Как научиться писать ПО под Win?
Принципиальной разницы в написании программ под микроконтроллеры и под Windows нет. Однако если вдаваться в тонкости, то разница есть. Вот основные различия (трудности):
1. Под Windows существует огромное количество сред программирования, и поэтому очень сложно выбрать. Выбирать среду проектирования нужно основываясь на предыдущих познаниях в программировании и выбранной прикладной области для программирования. Для человека с опытом эмбеддера лучше всего брать среду на C, из бесплатных хороши старый знакомый GCC (входит в состав пакета MinGW/MSYS), а также QT. Обе эти системы кроссплатформенны, так что Ваш C-код можно компилить и для Windows, и для *NIX систем. Неплохой выбор также платформа .NET, переползшая и на микроконтроллеры, а также язык C#.
2. Чтобы хорошо программировать под Windows, нужно знать и уметь использовать 3 вещи - библиотеки, библиотеки и еще раз библиотеки. Без этого невозможно написать ни одной серьезной программы, кроме "Hello, World!". Если уточнить, то нужно знать библиотеки фреймворка, сторонние библиотеки для выполнения нужных функций (регулярные выражения, реестр, обработка XML, GUI, работа со звуком, сетью, потоками, портами ввода/вывода и так далее до бесконечности) и API Windows. Объем материала огромный, намного больше, чем нужно освоить для программирования любой embedded-платформы. В этом основная трудность - приручить этих трех китов. Нужно начать это все изучать, потихоньку использовать и дальше всю жизнь учиться.
3. Учиться очень полезно на чужом коде, желательно простом. Могу посоветовать примеры кода под GCC для ПО хоста USB-устройств из библиотеки V-USB, все компилируется и замечательно работает. Примеры даже переведены на русский язык (комментарии в коде), так что разобраться вполне реально. Еще полезнее на основе чужого кода постепенно решать какую-нибудь свою задачу - учеба в процессе работы.
4. Писать для Windows можно точно в том же стиле, как в для микроконтроллеров - используя только один поток в цикле main, с вызовами неблокирующих процедур из главного цикла. Однако во многих случаях, особенно при работе с библиотеками, на одном потоке трудно обеспечить условие неблокирования при вызове функций библиотек (особенно это касается работы с вводом и выводом, с сетью, звуком, USB и т. д.). Причина в том, что часто библиотеки рассчитаны на многопоточное приложение, и допускают блокирование при вызове своих функций. Если у Вас приложение на одном потоке, то оно при блокировании функции просто зависнет, и будет ждать выхода из неё. Иногда (но далеко не всегда) можно обойти блокирование, используя CALLBACK-и, но не во всех библиотеках это предусмотрено. Поэтому очень и очень полезно освоить приятную фичу Windows - многопоточность, с ней код сильно упрощается, и приложение не будет виснуть при блокировке какой-нибудь функции. Потоки - это самое простое из всего, что встречается в программировании, и почему-то многие боятся их использовать. Сам тоже раньше боялся, но потом понял, что другого пути просто нет.
5. Документации на русском языке очень много, так что если не знаете технического английского, то пережить можно. Однако лучше английский осваивать, упорно читая со словарем код и документацию к библиотекам. Это очень поможет в дальнейшей работе.
Последний раз редактировалось microsin; 07.08.2011 в 19:49.
|
|
|
Эти 3 пользователя(ей) сказали Спасибо microsin за это сообщение:
|
|
|
07.08.2011, 19:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.12.2009
Сообщений: 4,561
Сказал спасибо: 619
Сказали Спасибо 1,813 раз(а) в 974 сообщении(ях)
|
Re: Как научиться писать ПО под Win?
Ну, по VB подсказать могу.
Дарю Вам мой проект-заготовку. Там уже готовая форма с менюшкой.
Только размещай свои объекты на форме, вписывай в их подпрограммы нужные команды - и всё готово))))
Но знание языка нужно освежить конечно.
Примечание.
В заготовке есть модуль, в котором используются АПИ. Вам ими грузиться пока нет нужды: всё уже подключено как надо.
|
|
|
|
07.08.2011, 21:14
|
|
Временная регистрация
Регистрация: 16.05.2006
Сообщений: 31
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Как научиться писать ПО под Win?
Изучите, что такое API, от него уже и пляшите(если , конечно, знаете языки программирования).
|
|
|
|
07.08.2011, 22:21
|
|
Почётный гражданин KAZUS.RU
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
|
Re: Как научиться писать ПО под Win?
API - это такая штуковина -application programming interface , взаимодействие между приложениями , на C (обычно) написаны функции, можно вставлять куда угодно.(не понял , отвечаю на стёртое сообщение )
|
|
|
|
07.08.2011, 22:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 21.03.2007
Адрес: М.(осква)
Сообщений: 4,248
Сказал спасибо: 2,096
Сказали Спасибо 1,706 раз(а) в 966 сообщении(ях)
|
Re: Как научиться писать ПО под Win?
Сообщение от OlegNZH
|
Вы уже почти поняли принцип ... ОС работает с ОЧЕРЕДЬЮ Событий, периодически её проверяя, а программы-запихивают туда "Свои вопросы"..
|
Сообщение от microsin
|
Писать для Windows можно точно в том же стиле, как в для микроконтроллеров - используя только один поток в цикле main, с вызовами неблокирующих процедур из главного цикла.
|
Обобщу. Есть (как бы) три вида программм для современных ОС: графические-визуальные (окна, хрюкалки, бантики, кнопки), консольные, и которые вообще на экране не видны. (Понимаю, что обьяснение звучит как для третьеклассника, но..)
Консольнвые - понятно. Кто в DOS программировал - тот и здесь разберётся. Те, которые не видимы - нас не интересуют, пока.
ВОПРОС: Как работают оконные программы?
Ответ: Сразу после запуска программа уходит в "бесконечный" цикл. В бесконечном цикле проверяется -"пришли ли сообщения(прерывания) от конопок, мыши, менюшек?". Если есть такие сообщения - вызывается подпрограмма, которая соответствует сообщению (каждому визуальному "в натуре" обьекту может соответствовать несколько разных подпрограмм). Подпрограма отработала - возвращаемся снова в бесконечный цикл. Выход из программы - когда от кнопки (кнопки на форме, строки меню, клавиатуры - горячие клавиши, от ОС - "закрыть программу?") - приходит сообщение, по которому (либо в шаблоне программы уже забито, либо программист постарался) вызывается подпрограмма завершения работы программы (закрытия формы).
Как-то так.
При этом потоки сообщений идут снизу ввверх. (Например. клик мышкой - вверх ушло "клик", подпрограмма Оси - приняла сообщение "клик", пооверила координаты курсора, отправила дальше "клик, 400, 700", ..., "клик, 400, 700, точка принадлежит форме программы "Prog"", "клик, 400, 700, точка принадлежит форме программы "Prog", попадает на кнопку "вычислить"",... и так далее.
И сверху вниз. (аналогично)
Только всё это - большая тайна. Потому как главная задача IDE - оградить программиста от этих сложностей. Вам достаточно знать - "накидал" в VB (только для примера, можно в C#) кнопок на форму, написал "обработчики" тыканья в эти кнопки. Всё!
__________________
+ 7 903 641 87 25// 1. Иногда отвечаю "по памяти" 2. Часто заблуждаюсь >> Критикуйте, не обижусь.
Последний раз редактировалось mtit; 07.08.2011 в 22:33.
|
|
|
|
07.08.2011, 22:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.12.2009
Сообщений: 4,561
Сказал спасибо: 619
Сказали Спасибо 1,813 раз(а) в 974 сообщении(ях)
|
Re: Как научиться писать ПО под Win?
АПИ - это функции из состава самой Винды, грубо говоря. Возможностей они дают действительно много, но работа с ними - ой гимор!..
Мое личное мнение: использую как вставки в бейсик-программу в тех случаях, когда с собственными функциями VB гимора еще больше
Изучать их специально - ну, у кого запаса душевных сил дофига))))) полезно конечно.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:34.
|
|