Библиотеки

ext-ref.gif WTL — версия 8.0 (сборка 7161)

6 июня на свет появилась долгожданная, восьмая версия Windows Template Library. Из наиболее значимых нововведений относительно предыдущей версии 7.5 можно выделить следующие:

  • поддержку Windows Vista — появились классы, инкапсулирующие Aero Wizard, Task Dialog, а также новые диалоги выбора имени открываемого / сохраняемого файла; добавились обработчики новых сообщений для элементов управления общего назначения (common controls) и стандартных диалоговых окон;
  • поддержку разработки в среде Visual Studio 2005 Express Edition — соответствующим образом изменен установочный скрипт; генерируемый «мастером приложений» исходный код позволяет использовать ATL версии 3.0 из Platform SDK;
  • наличие нового «мастера приложений» для платформ Windows Mobile 2003 и 5.0;
  • унификацию поддержки ATL версий 3.0 и 7.x/8.0;
  • появление новых классов, инкапсулирующих стандартный диалог открытия файла со множественным выбором, а также стандартные диалоги поиска / замены текста в элементе управления Rich Edit.

Полный перечень новшеств и изменений можно найти в разделе «Changes Between WTL 8.0 And 7.5» файла readme.htm, находящегося в корневой папке, куда была установлена библиотека.

Говоря о WTL, не стоит обходить взглядом и сторонние разработки, расширяющие функциональность данной библиотеки, некоторые из которых мне хотелось бы упомянуть в данном выпуске.

ext-ref.gif A WTL list control with Windows Vista style item selection

Данный компонент представляет собой элемент управления List View, поддерживающий выделение элементов в стиле Windows Vista и позволяющий редактировать отдельные ячейки:

По сути, это довольно мощный grid control, к возможностям которого относятся:

  • поддержка выделения элементов в стиле Windows Vista;
  • поддержка классического UI и визуальных стилей (тем), появившихся в Windows XP;
  • поддержка выделения как элементов целиком, так и отдельных подэлементов (ячеек);
  • поддержка размещения в ячейках выпадающих списков, календарей, гиперссылок, флажков и индикаторов прогресса;
  • поддержка редактирования ячеек;
  • поддержка сортировки колонок.

ext-ref.gif A WTL tree control with Windows Vista style item selection

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

ext-ref.gif Database wrappers

Набор классов от неутомимого Bjarke Viksoe, позволяющих использовать единый (с точки зрения C++) интерфейс при работе с базами данных как посредством ODBC, так и с помощью механизмов OLE DB.

COdbcSystem System;
System.Initialize();

COdbcDatabase Db(&System);
Db.Open(NULL, "Northwind", "", "");
COdbcRecordset Rec(&Db);
Rec.Open("SELECT ProductID,ProductName FROM Products");
while( !Rec.IsEOF() )
{
   long lID;
   char szName[128];
   Rec.GetField(0, lID);
   Rec.GetField(1, szName, 128);
   Rec.MoveNext();
}
Rec.Close();
Db.Close();

System.Terminate();

Помимо ODBC и OLE DB поддерживается работа с файлами в формате CSV и базами данных SQLite (версии 2).

ext-ref.gif CRegSettings — registry helper class

Класс, позвозяющий использовать DDX-подобный синтаксис для записи настроек приложения в системный реестр и последующего чтения их оттуда:

// Пример конфигурационных данных приложения
class CMySettings : public CRegSettings
{
public:
    DWORD Value1; // численная величина
    CString Value2; // строковая величина
    DWORD RequiredValue;

    BEGIN_REG_MAP(CMySettings)
        REG_ITEM(Value1, 1)
        REG_ITEM(Value2, "Default Value")
        REG_ITEM_REQUIRE(RequiredValue)
    END_REG_MAP()
};

После того, как структура конфигурационных данных определена, мы можем с легкостью сохранять или восстанавливать их:

CMySettings settings(HKEY_CURRENT_USER, "Software\\My Company\\Application\\1.0");
settings.Load(); // Загрузка настроек
... // Использование настроек settings.Value1 etc.
settings.Save(); // Сохранение настроек

ext-ref.gif wxWidgets — версия 2.8.4

Очередное обновление популярной библиотеки с открытым исходным кодом, предназначенной для создания кросс-платформенных приложений. Изменения, сравнительно с предыдущей версией 2.8.3, свелись к исправлению ряда ошибок в части, касающейся GUI, а также добавлению в класс wxString нескольких методов, призванных обеспечить «прямую совместимость» (forward compatiblity) данной версии с разрабатываемой в настоящее время wxWidgets 3.

ext-ref.gif SmartWin++ — версия 2.0 RC5

За последний месяц активность автора этой библиотеки, предназначенной для создания пользовательских интерфейсов в Windows-приложениях, существенно выросла и 24 июня стал доступен для скачивания уже пятый релиз-кандидат давно ожидаемой версии 2.0; при этом, коммиты исходых файлов в CVS можно наблюдать практически ежедневно. Будем надеяться, что релиз не за горами — по крайней мере, мне чрезвычайно интересна эта библиотека, построенная на принципах modern C++ programming и интенсивно использующая STL / boost. Хочется заметить, что дистрибутив сделан по принципу «все включено» — он содержит используемую часть boost-а и не требует для сборки скачивания каких бы то ни было дополнительных исходных текстов.

ext-ref.gif boost — версия 1.34.0

В данной версии были добавлены библиотеки Foreach (облегчает итерирование элементов последовательности), TR1 (является тонкой оболочкой вокруг расширений стандартной библиотеки, использующей либо реализацию, поставляемую с компилятором, а при отсутствии таковой — собственные алгоритмы boost), Typeof (эмуляция оператора typeof) и некоторые другие. Помимо этого, был внесен ряд дополнений в билиотеки Assign, Date_time, Filesystem, Function, Functional/Hash, Graph, MultiArray, Multi-index, Optional, Parameter, Pointer Container, Pyton, Signals, Smart Pointers, String Algorithm и Wave. Тем, у кого сборка библиотек, входящих в состав boost, вызывает какие-то проблемы, хочу порекомендовать сайт Boost Consulting, на котором со страницы Free Downloads можно скачать инсталлятор, позволяющий выбрать, скачать и установить уже собранные версии библиотек для компиляторов Microsoft Visual C++ версий 7.1 и 8.0 (2005).

Средства разработки

ext-ref.gif WinMerge — версия 2.6.8

Новая версия этой утилиты, предназначенной для сравнения и синхронизации файлов и папок, отличается от предыдущей наличием файловых фильтров для Delphi, C# и Symbian; обновлением корейской локализации; отсутствием возможности скрывать диалоги, требующие подтверждения при сравнении папок; а также исправлением ряда мелких ошибок.

ext-ref.gif Inno Setup — версия 5.1.12

Jordan Russell продолжает медленно но верно совершенствовать свой генератор дистрибутивов, выпуская примерно раз в месяц обновленные версии. В текущей была в очередной раз улучшена совместимость с Windows Vista; появилась официальная локализация на иврите; добавилась возможность использовать многострочные сообщения в диалогах выбора папки. Помимо этого, были исправлены мелкие визуальные погрешности, проявлявшиеся при использовании шрифтов или их размеров, отличающихся от предусмотренных по умолчанию.

ext-ref.gif Nullsoft Scriptable Install System — версия 2.28

Несколько мелких исправлений и улучшений, полный перечень которых можно найти по адресу http://sourceforge.net/project/shownotes.php?release_id=514642 — в основном они свелись к улучшению совместимости с нестабильно работающими серверами, что приводило к 100%-й загрузке процессора или зависанию инсталлятора. Печально, что проект HM NIS Edit: A Free NSIS Editor/IDE не развивается уже более двух лет и, судя по всему, брошен авторами на произвол судьбы.

ext-ref.gif Subversion — версия 1.4

Очередной шажок в развитии линейки 1.4.x: исправлено порядка двух десятков ошибок, одна часть которых давала о себе знать на клиентской, а другая — на серверной стороне; полный список сделанных исправлений находится по адресу http://svn.collab.net/repos/svn/branches/1.4.x/CHANGES. Никаких новых возможностей по сравнению с предыдущей версией добавлено не было.

ext-ref.gif TortoiseSVN — версия 1.4.4 (сборка 9706)

Собранный на ядре Subversion 1.4.4, данный релиз, как и предыдущий участник нашего обзора, не содержит никаких нововведений, а «всего лишь» исправляет полтора десятка ошибок, обнаруженных за время эксплуатации версии 1.4.3 — с их перечнем можно ознакомиться по адресу http://sourceforge.net/project/shownotes.php?release_id=514763.

ext-ref.gif Subcommander — версия 2.0.0 beta

Еще один клиент для системы контроля версий Subversion — на этот раз не только с открытым исходным кодом, но еще и кросс-платформенный (разработка ведется с использованием некоммерческой версии библиотеки Qt, поддерживаются Win32, Unix и MacOS X).

Проект, на мой взгляд, довольно интересный, хотя у авторов весьма своеобразный подход к бета-тестированию — в текущей версии все команды, в функциональности которых они, видимо, сомневаются, попросту недоступны пользователю. Поэтому тем, кто хочет попробовать данного клиента в условиях «близких к боевым», имеет смысл скачать текущую стабильную (по заверениям авторов, падать ей случается) версию 1.2.2.

Исходники

ext-ref.gif Process viewer

[C++, MFC] Довольно занятная утилита, позволяющая получать разного рода информацию о выполняющихся в системе процессах:

Умеет показывать загруженные в адресное пространство процесса DLL-библиотеки и экспортируемые ими фиункции, загруженные драйвера, версии исполняемых модулей, приоритеты и привилегии, информацию об использованных ресурсах GDI и User, созданные окна, etc.

ext-ref.gif Multi-Column Tree View

[C++, MFC] Гибрид элементов управления Tree View и List View:

Поддерживается регулировка ширины столбцов при двойном щелчке мышью на их разделителях в заголовке и выделение строки целиком. Данный элемент управления может использоваться как в приложениях, построенных на архитектуре document/view, так и в качестве «самостоятельного» компонента.

Мобильный мир

ext-ref.gif tGetFile.dll — версия 5.0

Как известно, платформа Windows Mobile, под управлением которой работают такие устройства, как Pocket PC и MS Smartphone, не позволяет при помощи функций GetOpenFileName() и GetSaveFileName() получить доступ к произвольной папке — только к «My Documents» и ее содержимому (плюс к картам памяти, если они есть). Данная библиотека призвана снять это ограничение:

       

Приложения, которым требуется «полноценный» диалог выбора файлов (или папок) должны разрабатываться с использованием tGetFile SDK, что при использовании для выбора имени файла функций GetOpenFileName() и GetSaveFileName() является, по словам авторов, «весьма легкой» задачей. Единственной ложкой дегтя является тот факт, что несмотря на бесплатность, tGetFile.dll нельзя (по условиям лицензионного соглашения) распространять вместе с созданным вами приложением — его пользователь должен самостоятельно скачать и установить библиотеку на свое мобильное устройство (при ее отсутствии приложение будет отображать стандартные системные диалоги). Текущая версия воддерживает платформы Windows Mobile 2002, 2003 и 5.0.

обновлено
31.07.2007
 
Проверка PR и ТИЦ