<under construction>
Обзор исходного кода библиотеки.
Цели создания библиотеки.
Соглашения о форматировании кода.
Организация библиотеки.
Алфавитный перечень типов данных.
Алфавитный перечень функций.
Алфавитный перечень классов.
Известно, что каждый программист со временем накапливает код, который затем постоянно перносит из одного проекта в другой. Со временем код "оттачивается": в нем устраняются ошибки, для него пишутся комментарии, код приводится в "удобочитаемый" вид.
Успешное использование такого кода - который со временем должен превратиться в "лицо программиста" - зависит от множества факторов. В настоящее время практически лишенной смысла является попытка написания, скажем, графической библиотеки, или библиотеки классов для организации оконного интерфейса. Сущестуют аналогичные продукты промышленного качества; однако зачастую в них (по мнению программиста !) не хватает нескольких мелочей ...
Работа начинается именно с "залатывания дыр" в программных интерфейсах промышленных библиотек. Можно привести массу примеров подобного "залатывания": "ручное" добавление размещаемого заголовка к метафайлу (кстати, VCL-евские классы по человечески с метафайлами НЕ РАБОТАЮТ); написание сканеров, разбирающих содержимое текстовых файлов; инкапсуляция громоздкого вспомогательного кода и т.д.
Со временем выясняется, что простое "залатывание" приносит мало пользы. Код, претендующий на простоту повторного использования, должен быть переносим как минимум в пределах одной платформы (например, существует масса разновидностей Win32 и масса компиляторов для Win32). Достижение переносимости даже в таком монимании - весьма непростая задача: сущестует множество отличий в реализациях Win32, а многие компиляторы для Win32 попросту генерируют неверные двоичные файлы (редактор ресурсов и компоновщик от WatcomC 11 не работают корректно ни на одной известной автору Win32 платформе; работоспособность под NT 3.51 проверить нет возможности). Однако пределом мечтаний программиста-"инструментальщика" является истинная кросплатформенность библиотеки.