?

Log in

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

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

Мониторинг заполнения памяти элементами Queue
C++, уроки, Программирование
a_1a
Это промежуточный этап работы над мониторингом заполнения памяти.


Подробнее...Collapse )
WinLego_15_8_2

Пример работы с очередью (ещё один)
C++, уроки, Программирование
a_1a
Доджен быть способ просто и наглядно показать, как работает Queue (очередь). И я продолжаю этот способ искать...
Можно скачать отдельно exe-файл для экспериментов (не отвлекаясь на исходники примера).
На картинке это выглядит так:


На всякий случай напомню, что наш Queue это не контейнер из STL. А самодельный класс, который позволяет обойтись без STL и сдерживать размер exe-файла в рамках приличия (пока около 52х Килобайт). Вы можете самостоятельно улучшить код класса Queue, если будет такая возможность. Найти его можно здесь:



Память для всех элементов выделена с помощью средств WinAPI ( функции HeapCreate() ).



Именно поэтому адреса элементов не разбросаны хаотично по всей памяти процесса. И работать такой код должен быстрее, чем с использованием оперетора new или malloc(). Можно заметить, что один элемент очереди занимает в памяти 24 байта (это с учётом системной информации). Памяти из кучи я выделил очень мало. В очередь помещается всего 110 элементов, а дальше появляется сообщение о том, что память исчерпана. Радует то, что есть возможность выделить и в два и в тысячу два раза больше места. Было бы что хранить, а памяти океан :)

Скачать папку с проектом. И посмотреть код примера в файле main.cpp.
Файл проекта находится здесь:

Кнопка с картинкой. 6 способов реализации.
C++, уроки, Программирование
a_1a


В этом примере первые 3 кнопки созданы только средствами WinAPI. То есть, эти способы подойдут для любого Windows-проекта.
Легче всего созданы последние две кнопки ( пятая и 6-я).

Развернуть... (почти, весь код из файла main.cpp)Collapse )
В тексте (в файле main.cpp) можно легко разобраться и воспроизвести всё самостоятельно.
Скачать папку dllBridge c проектом (и всеми исходниками).

После размещения папки dllBridge надиске ( C:\dllBridge ) Найти этот пример можно, как показано на рисунке:


WinLego 15 ( чтение и запись в файл )
C++, уроки, Программирование
a_1a
Есть пример работы с файлом (в папке: ExampleWorkWith_DB). Чтение и запись строк в файл в произвольном порядке.
1) Выбираете файл (он должен быть создан заранее).
2) Читаете или пишете из/в нужную строку. Длина строки не должна превышать 200 символов. Если пишете в строку, начиная со 120 позиции, то не более 80 символов.
    Так как строк можно создавать много (теоретически до 1 миллиона), то должно хватить для стандартных ситуаций.



3) В строке можно хранить несколько параметров ( char arr[] ), разделённых точкой с запятой " ; ".

Папку dllBridge (после распаковки) нужно поместить на диск так: C:\dllBridge
Важно!!! В архиве есть exe-файлы. На них или на что-то ещё ругается Яндекс-браузер. Я проверил архив утилитой CureIt и ничего подозрительного не нашёл.

Найти файл проекта WinLego_15 можно, посмотрев на рисунок ниже:
Tags:

Игра "Морской бой" на базе WinLego
C++, уроки, Программирование
a_1a
Готовлю новую ( 15-ю ) версию WinLego. А пока выкладываю игру, сделанную на базе предыдущих версий.
Все исходные коды открыты и Вы можете улучшить или сделать свою версию игры.



Пока вижу два направления, как улучшить игру:
1) Возможность играть двум игрокам, через интернет. Для этого к WinLego нужно написать компактный Lego-модуль для обмена данными по сети.
    Например, с помощью библиотеки функций WinInet. Будет здорово, если кто-либо поможет это сделать.
2) Сохранять рекорды и игровые настройки. Потребуется простая база данных, основанная на произвольной записи в файл средствами WinAPI.
    Сейчас стараюсь сделать такие функции.
   P.S.: Класс уже готов в WinLego_15 (28_11_2018)





Код игры ( exe-файл ) "весит" 64 килобайта. Музыка и картинки почти в 200 раз тяжелее.
Скачать файл инсталлятора игры можно здесь..

Подключение файлов ( *.cpp , *.h , *.rc ) в среде разработки Dev-C++
C++, уроки, Программирование
a_1a
Достаточно одной картинки, чтобы понять весь процесс подключения к Вашему проекту:
1) Файлов реализации ( c, cpp )
2) Заголовочных файлов ( h )
3) Файлов Menu  ( rc )



На всякий случай прикреплю архив с этим (минимальным) проектом.
Tags:

WinLego - 14
C++, уроки, Программирование
a_1a
Добавлена возможность отображать в окне картинки форматов: JPG, PNG, GIF (BMP тоже). Остальные форматы не проверял.
И работа с файлами MP3, MIDI (WAV тоже можно проигрывать).
Всё продемонстрировано в этом коротком примере:




Выше (на рисунке отмечено красным) время компиляции и размер исполняемого файла. В тексте примера видно, что рисунки и музыка загружаются из папки dllBridge из корневой дирректории диска C:\.   Теперь эта папка станет обязательным спутником проекта, чтобы десятки и сотни раз не копировать одинаковые файлы. В ней лежит значительная часть кода проекта WinLego.





В архиве есть exe-файл.
Новая версия требует присутствия папки dllBridge на диске C:\
Tags:

3-й новый минимальный проект под Windows
C++, уроки, Программирование
a_1a
Самый простой здесь.

Затем. этот вариант...

Последний архив (на 1 ноября 2018 года) лежит здесь.

В последнем варианте в файле main.cpp добавлена функция void mainPAINT();
Эта функция вызывается из оконной процедуры, при каждом появлении сообщения WM_PAINT от операционной системы.
В этом есть необходимость. Иначе придётся (рано или поздно) добавлять код в саму оконную процедуру WhdProc()
Скорее всего, это не последний вариант минимального проекта под Windows...



P.S.(06_Nov_2018): репозитарий на GitHub
Tags:

WinLego - 12
C++, уроки, Программирование
a_1a
Добавлена панель инструментов (ToolBar), строка состояния (StatusBar), ещё одна заставка и нужные исправления (дополнения).
Время компиляции проекта около 1 секунды. Исполняемый Exe-файл занимает 42 килобайта. Можете делать свой проект на основе WinLego или принять участие в его улучшении.

Скачать проект можно по этой ссылке
Tags: