← All posts tagged программирование

Что‐то понравилось использовать интерфейсы в своих задачах. Вот раньше писал код вызова для каждой однотипной функции, настраивал для них параметры.
А теперь понял, что достаточно сменить указатель на функцию и вызвать её по указателю, ведь параметры у таких функций одинаковые.

Могущественная транснациональная корпорация Micro$oft в описании функций удаляет из списка поддерживаемых старые версии операционных систем в статьях на MSDN. Например, исчезло упоминание XP в описании функции accept в минимальных требованиях, теперь только 2003 Server.

В пакетном файле могут быть функции. Вот пример рекурсивного вычисления факториала в пакетном файле:

@echo off

call :factorial %1
echo %RESULT%
exit
rem Функция для вычисления факториала числа
rem Вход:
rem %1 Число, для которого необходимо подсчитать факториал
rem Выход:
rem %RESULT% Значение факториала
:factorial

if %1 == 0 (
set RESULT=1
exit /b
)

if %1 == 1 (
set RESULT=1
exit /b
)

set /a PARAM=%1 — 1

call :factorial %PARAM%

set /a RESULT=%1 * %RESULT%

exit /b


Пример работы:
factorial.bat 103628800

Раньше если нужно было найти объект в массиве и вернуть его позицию, прямо так и возвращал индекс из функции. Если объект не был найден, то возвращал −1.
Сейчас же возвращаю из функции True если объект найден и False если объект не найден, а индекс в массиве заполняю параметром по указателю.

Карточная игра «Девятка», выполненная
в классическом стиле встроенных карточных игр Windows XP.
Первый релиз, начало истории туть #2869538

Сделано:

* Уже можно играть (меню «Новая игра»)
* Анимация выдачи колоды
* Анимация передвижения карты по полю
* Битва компьютеров друг с другом

В комплекте идёт библиотека cards.dll из операционной системы ReactOS,
но если у тебя есть Windows XP, то можешь взять эту библиотеку оттуда. В
Windows 7 и старше эта библиотека отсутствует.

Скачать можно отсюда github.com
Исходники тут github.com

Управляемая память выделяется частями. Выделения памяти могут быть по 16, 32 и 64Kb. Выделения должны быть в непрерываемых блоках, и если нет регионов памяти достаточных для помещения туда выделений, процесс выделяет исключение OutOfMemoryException. Если процесс не может выполнить сборку мусора, не хватает памяти для внутренних структур сборщика мусора, процесс будет аварийно завершён.