?

Log in

No account? Create an account
About,,,
C++, уроки, Программирование
a_1a


Дополнительная информация о сайте...
Нужно руководство для быстрого и результативного старта – “Если я прочитаю это, то у меня точно получится”.
Я искренне надеюсь, что этот сайт поможет вам сделать больше, чем первый успешный шаг в программировании. Несмотря на неизбежную субъективность точки зрения на некоторые вопросы, в том числе при выборе языка программирования C++, мы должны добиться желаемого результата.
Сразу отмечу, что не ставлю своей целью составить справочник или полное руководство по предмету. А намерен создать условия для преодоления психологического барьера перед началом изучения программирования для новичка. Так же постараюсь рассмотреть некоторые интересные решения для стандартных задач в программировании.
Ещё один важный момент – это не отрываться от сути процессов, которыми собираемся программно управлять. То есть не просто – “держи руль и едь хорошо”, а на чём рули хорошо? На самолёте, мотоцикле или подводной лодке? Обязательно нужно видеть программирование с точки зрения архитектуры компьютера.
Случай самовнушения. "У меня нет способностей к языкам программирования" - самый распространённый его вариант. Но фокус в том, что такой самообман разрушается всего одним фактом. Любой, кто в состоянии осознанно установить время срабатывания будильника или пользоваться "микроволновкой", может научиться программировать.
Что является самым сложным для того, кто собрался сделать первый шаг в программировании?
Правильно, вы не угадаете!
Самым сложным шагом является первое впечатление (через него многим не удаётся переступить) от среды разработки - интерфейса компилятора или IDE. Назовите это как угодно, но суть не изменится.
Все эти кнопки, надписи (термины) и главное, почему первый и якобы самый простой пример программы состоит из множества файлов?
На этом, как правило, и заканчивается знакомство с программированием для большинства решившихся.
В лучшем случае человек забрасывает мысли о программировании на несколько лет.
В самой выгодной ситуации окажется тот, у кого есть рядом программист или энтузиаст,
который уже сделал первый шаг и готов порадоваться тому, как всё просто, вместе с Вами.
Если Вы читаете эти строки, то значит проходите первый этап без проблем!
Оглавление:
Показать оглавление...Collapse )

Tetris Кудуштеева Алексея
C++, уроки, Программирование
a_1a


Хочу разобраться в структуре этой программы и в стиле программирования Алексея.
Для этого перенёс проект в Dev-C++ 5.2.0.1
Очень затягивает игровой процесс. Была даже мысль, что игра выбирает самые неподходящие фигуры в сложных ситуациях. Если разберусь в коде, попробую сделать дополнение к игре. Надеюсь, что автор не будет против...



Скачать проект и exe-файл

Решение квадратных уравнений + график
C++, уроки, Программирование
a_1a


Проект

Ассемблерные вставки в DLL
C++, уроки, Программирование
a_1a


По картинке понятно, что программа делает. В данном случае функции разложения цвета на RGB и определения факториала лежат в DLL-библиотеке.
Код этих функций написан на Assembler в виде ассемблерных вставок (для GCC - компилятора):



Скачать этот проект...
Tags:

Обмен, через общий (разделяемый) сегмент данных в dll
C++, уроки, Программирование
a_1a


На картинке выше изображены две разные программы,- консольное и Windows-приложение.
Обе эти программы подключили одну dll-библиотеку и через неё могут обмениваться данными.
Точнее сказать, в dll есть массив int Common_array[100]; в разделяемом сегменте данных ( Shared memory ).



С помощью подобного решения два процесса могут моментально обмениватьсь данными.
Этот практический пример позволит Вам с минимальными временными затратами решить проблему передачи данных в Вашем конкретном случае.

Готовые исполняемые (exe-файлы) консольной и Windows-программ я положил в папку dll-проекта. Для простого поиска и подключения dll-библиотеки.

Примечание: 1) Библиотека dll создавалась,как Си (не C++) проект.
                           Для C++ проекта макрос DLLIMPORT нужно бутет переопределить так :
                         
                       2) Windows-программу нужно запустить первой для демонстрации обмена.
                       3) В этом примере очень много интересного, если внимательно разберёте код.

Скачать этот пример.
 

TabControl ( закладки )
C++, уроки, Программирование
a_1a
На основе минимального Windows-проекта сделаем элемент управления Tab Control



Скачать проект

Теперь выносим код создания и управления закладками в отдельные функции.



Скачать проект
Tags:

WinLego-18
C++, уроки, Программирование
a_1a
Всё, что есть на данный момент. Появился первый автономный Lego-модуль "ScreenSaver_1"
Tags:

Lego-модуль ScreenSaver_1
C++, уроки, Программирование
a_1a
Эта экранная заставка стала полностью автономным модулем. К примеру, Вы можете взять любой Windows-проект (минимальный или нет) и подключить её.
Интерфейс для подключения простой и очевидный:



В архиве находятся три файла (заголовочный, реализации и объектный).
Эти файлы должны иметь фиксированный путь, для простого доступа к ним, при подключении:
C:\\dllBridge\\le_Go\\ScreenSavers\\ScrSaver_1.h
C:\\dllBridge\\le_Go\\ScreenSavers\\ScrSaver_1.cpp
C:\\dllBridge\\le_Go\\ScreenSavers\\ScrSaver_1.o
То есть, на диске C:\ должна быть папка dllBridge, в которой будут храниться файлы проекта WinLego, минимального Windows-проекта. И другие важные файлы, которые имеют отношение к указанным проектам.

Минимальный 5-й Windows-проект вместе с  подключенной экранной заставкой скачать...

4-й вариант минимального проекта под Windows
C++, уроки, Программирование
a_1a
Не прошло и пол-года с момента публикации третьего варианта минимального проекта.
В новой версии внешний функционал оставлен неизменным. Изменилась структура проекта. Немногочисленные. но важные исправления. Проект стал более структурированным.



В архиве есть exe-файл (если вдруг у Вас не скачана среда разработки).
Скачать...

Теперь рассмотрим практичекое применение такого проекта для преобразования однофайлового примера программы для Windows. Внешний вид показан на рисунке ниже.



Допустим, у нас есть пример рисования в Windows-окне с использованием буфера в памяти. Весь код в этом примере находится в одном файле. Пока проект относительно небольшой мы можем продолжать его совершенствовать. Чтобы работать с проектом, в котором более чем 2000 строк, нам придётся подумать о масштабируемости проекта. И здесь на помощь приходит структурированный-минимальный Windows-проект.
-----------------------------------------------------------------------------------------
Теперь, после преобразования однофайлового проекта в многофайловый (с заранее продуманной конфигурацией) нам будет проще его модифицировать сейчас и в будущем.



Скачать многофайловый проект.

P.S. Если Вы внимательно рассмортрите преобразования этих проектов, то освоите:
1) Принцип программирования для  Windows
2) Как разделять проект на файлы
То есть, самое-самое главное !!!
Tags:

Dev_Cpp_5_11_portable + SFML_2.2
C++, уроки, Программирование
a_1a
Чем новее, тем лучше.

Версия 22 апреля:  https://yadi.sk/d/pwVT0HXszh_W2w

Содержит две версии GCC компилятора: MinGW GCC 4.6.2  (32 bit)
и TDM-GCC 4.9.2 (32/64 bit)

Билиотека SFML 2.2 используется совместно с TDM-GCC 4.9.2 (32 bit)
Библиотека BGI ( Borland Graphics Interface )  подключена к MinGW GCC 4.6.2  (32 bit)



Версия 21 апреля:   https://yadi.sk/d/OFSKu7RHLYminQ

Версия 20 апреля:  https://yadi.sk/d/r4C0MvQdeZdqiQ

Пример...
Tags: