Визуальное программирование и MFC

       

Основы многопоточного программирования

Параллельное программирование возникло в 1962 г. с изобретением каналов — независи­мых аппаратных контроллеров, позволявших центральному процессору выполнять новую прикладную программу одновременно с операциями ввода-вывода других (приос­тановленных) программ. Параллельное программирование (слово параллельное в данном слу­чае означает "происходящее одновременно"') первоначально было уделом разработчиков операционных систем. В конце 60-х годов были созданы многопроцессорные машины. В ре­зультате не только были поставлены новые задачи разработчикам операционных систем, но и появились новые возможности у прикладных программистов.
Первой важной задачей параллельного программирования стало решение проблемы так называемой критической секции. Эта и сопутствующие ей задачи ("обедающих философов", "читателей и писателей" и т.д.) привели к появлению в 60-е годы огромного числа научных работ. Для решения данной проблемы и упрощения работы программиста были разработаны такие элементы синхронизации, как семафоры и мониторы. К середине 70-х годов стало яс­но, что для преодоления сложности, присущей параллельным программам, необходимо ис­пользовать формальные методы.

Обзор области параллельных вычислений
Семафоры
Нотация совместно используемых примитивов
Матричные вычисления

Визуальное программирование и MFC

В связи с тем, что сегодня уровень сложности программного обеспечения очень высок, разработка приложений Windows с использованием только какого-либо языка программирования (например, языка C) значительно затрудняется. Программист должен затратить массу времени на решение стандартных задач по созданию многооконного интерфейса. Реализация технологии связывания и встраивания объектов - OLE - потребует от программиста еще более сложной работы.
Чтобы облегчить работу программиста практически все современные компиляторы с языка C++ содержат специальные библиотеки классов. Такие библиотеки включают в себя практически весь программный интерфейс Windows и позволяют пользоваться при программировании средствами более высокого уровня, чем обычные вызовы функций. За счет этого значительно упрощается разработка приложений, имеющих сложный интерфейс пользователя, облегчается поддержка технологии OLE и взаимодействие с базами данных.
Современные интегрированные средства разработки приложений Windows позволяют автоматизировать процесс создания приложения. Для этого используются генераторы приложений. Программист отвечает на вопросы генератора приложений и определяет свойства приложения - поддерживает ли оно многооконный режим, технологию OLE, трехмерные органы управления, справочную систему. Генератор приложений, создаст приложение, отвечающее требованиям, и предоставит исходные тексты. Пользуясь им как шаблоном, программист сможет быстро разрабатывать свои приложения.

Введение в Visual C++
Сохранение и восстановление состояния объектов
Описание объектов СОМ

Сверхбыстрый импорт API-функций

Импорт API-функций "отъедает" существенный процент от общего времени загрузки исполняемых файлов и возникает естественное желание его сократить. Системный загрузчик крайне неэффективен и выполняет множество лишних проходов. Разбирая стандартную таблицу импорта, для каждой импортируемой функции он выполняет _полный_ _поиск_ соответствующего имени/ординала в таблице экспорта, не обращая внимания на то, что экспорт KERNEL32.DLL да и других системных библиотек упорядочен по алфавиту и, если таким же образом упорядочить импорт пользовательских программ, все API-функции можно слинковать за _один_ проход, используя минимум операций сравнения.


В принципе, не заставляет нас пользоваться стандартным загрузчиком. Формат таблиц экспорта хорошо описан и при желании необходимые API-функции можно импортировать и "вручную". В частности, линкер ulink от Юрия Харона именно так и поступает, загружая необходимые ему API-функции по вышеописанному алгоритму, однако, это еще не предел оптимизации и далеко не предел.

Продолжение

Раздел - Государственное регулирование

Разговор о том, как большие начальники хочут получить с нас денег. Неймется им. С другой стороны мы тоже не вчера в этих бизнесах. Отсюда и возникающие соревновательные процедуры - кто кому ловчее расскажет "за бабло". Вариантов немного. Один из дележка. Мне как-то он вовсе не заходит. Поэтому приходится знать противника в лицо.

Внешний долг
Бизнес
Валютная политика
Госслужба
Заграница

Инвестиции
Интеграция
История
Модернизация
Население

НПО
Образование
Сохранение биоразнообразия
Планирование
Предприятия
Регионы
Регулирование
Реформы

Роль
Самоуправление
Стандарты документов
Управление
Учебники

Финансы
Экономика
Экономическая система

Справка по кодеку DivX

Кодирование видео за один проход. Имеет недостаток, когда обсчет видео происходит за один проход, то качество сцен может получиться разным, в зависимости от динамики. Для этого придумали однопроходовое кодирование с постоянным качеством. Использование этой опции может привести не неожиданному размеру, в зависимости от того, какой битрейт потребуется для тех или иных сцен.

Bitrate Calculator