Сообщений 0    Оценка 300        Оценить  
Система Orphus

[ANN]once — #1'2008

Автор: Илья Зарецкий
The RSDN Group

Источник: RSDN Magazine #1-2008
Опубликовано: 17.07.2008
Исправлено: 10.12.2016
Версия текста: 1.0
Средства разработки
STLport – Easier debugging
JSLint.VS – JavaScript Verifier for Visual Studio
P/Invoke Library - VS2005 & 2008 Add-in
The Code Project Browser Add-in for Visual Studio 2005 and 2008
Visual C++ 2008 Feature Pack Release
WinMerge – версия 2.8.0
A generic List and Dictionary Debugger Visualizer for VS.NET
HashCalc – версия 2.02
Библиотеки
FreeImage – версия 3.10.0
Qt/Windows Open Source Edition – версия 4.4.0
Статьи
Looking forward to wxWidgets 3
Introduction to Object Oriented Programming Concepts (OOP) and More
Win32 Tips, Tricks and Tutorials
Vista UAC: The Definitive Guide
Повсеместно Протянутая Паутина
Highlight.js – версия 4.1
Исходники
XHtmlTree – версия 1.6
Control Panel applet
TreeView with Columns
Tree control with columns
LINQ to CSV library
LeerGridView: an Editable ListView
ListView Layout Manager
High-speed Charting Control

ПРИМЕЧАНИЕ

Материалы данной статьи приведены на CD ROM.

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

STLport – Easier debugging

http://sourceforge.net/forum/forum.php?forum_id=750577

Разработчики библиотеки STLport добавили в репозиторий SVN файл autoexp.dat, позволяющий улучшить визуализацию экземпляров ее классов в отладчике Microsoft Visual Studio. Содержимое этого файла, которое необходимо вставить в секцию [Visualizer] одноименного файла из поставки Visual Studio (он находится в папке ...\Common7\Packages\Debugger), можно получить, открыв в браузере страницу http://stlport.svn.sourceforge.net/viewvc/stlport/trunk/STLport/etc/ и кликнув по текущему номеру ревизии рядом со ссылкой autoexp.dat.

JSLint.VS – JavaScript Verifier for Visual Studio

http://www.codeproject.com/KB/scripting/JSLintVS.aspx

«Дополнение» (add-in) для Visual Studio версий 2005 и 2008, позволяющее выполнять проверку кода, написанного на JavaScript и являющегося частью текущего solution. Предусмотрены различные параметры проверки, а также выбор файлов, для которых ее следует осуществлять.


P/Invoke Library - VS2005 & 2008 Add-in

http://www.codeproject.com/KB/macros/PInvokeLibAddin.aspx

Еще одно «дополнение» для Visual Studio – оно предназначено для автоматизации вставки в управляемый код объявлений структур и функций Win32 API, вызываемых посредством механизма P/Invoke:


Если P/Invoke Manager еще «не знает» функции, объявление которой вам необходимо вставить, необходимо перейти на вкладку Define и выполнить следующие действия:

Аналогичным образом добавляются и структуры. По утверждению автора, большинство типов языка C уже определены и могут быть повторно использованы «как есть». Из недочетов можно отметить тот факт, что утилита не поддерживает указатели на что-либо, кроме строк символов.

The Code Project Browser Add-in for Visual Studio 2005 and 2008

http://www.codeproject.com/KB/macros/cpbrowser.aspx

Ну и поскольку Бог, как известно, любит троицу, я позволю себе предложить вашему вниманию «дополнение» для Visual Studio, позволяющее удобно скачивать заинтересовавшие вас статьи с сайта The Code Project и просматривать их, не покидая IDE:


Установив это «дополнение», вы получаете возможность полностью управлять сохраненными статьями; при щелчке по ссылке на пример архивный файл с его исходными текстами может быть автоматически загружен из Интернета, распакован и открыт в Visual Studio.

Visual C++ 2008 Feature Pack Release

http://www.microsoft.com/downloads/details.aspx?FamilyId=D466226B-8DAB-445F-A7B4-448B326C48E7&displaylang=en

Данный «пакет возможностей» предназначен для расширения функциональности библиотек STL и MFC из стандартной поставки Visual Studio 2008. В первой из них появилась реализация TR1, включающая в себя:

Справочник по нововведениям в STL можно найти по адресу Standard C++ Library TR1 Extensions Reference.

Что же касается MFC, слухи о смерти которой оказались, в очередной раз, сильно преувеличенными, то в ее арсенале появились:

По адресу MFC Feature Pack for Visual C++ 2008 находится детальная информация о классах и функциях, добавленных в библиотеку MFC.

Если вы собираетесь распространять приложения, разработанные с использованием перечисленных выше новинок и использующие динамическую компоновку с CRT и (или) MFC, то для вас окажутся полезными следующие ссылки:

WinMerge – версия 2.8.0

http://winmerge.org/

Очередная версия замечательной утилиты для сравнения и объединения текстовых файлов принесла с собой панель закладок для удобного переключения между несколькими открытыми окнами и обновленную локализацию для бразильского, традиционного китайского, французского, немецкого, японского, русского, испанского и шведского языков. Помимо этого было исправлено несколько ошибок; полный список изменений доступен по адресу WinMerge 2.8: Change Log.

A generic List and Dictionary Debugger Visualizer for VS.NET

http://www.codeproject.com/KB/macros/ListVisualizer.aspx

Визуализатор контейнеров List<T> and Dictionary<T,T>, позволяющий в удобной форме просматривать при отладке приложения их содержимое вместе с содержимым отдельных элементов:


HashCalc – версия 2.02

http://www.slavasoft.com/hashcalc/index.htm

Быстрый и простой в использовании калькулятор, позволяющий вычислять так называемые «профили сообщений» (message digests), контрольные суммы и разного рода хэши как для файлов, так и для текстов и шестнадцатеричных строк. В распоряжении пользователя – 13 самых популярных алгоритмов:


Библиотеки

FreeImage – версия 3.10.0

http://freeimage.sourceforge.net/

В новой версии данной библиотеки для работы с изображениями добавлена поддержка двух новых графических форматов – JPEG2000 и OpenEXR. Помимо этого были обновлены три «вспомогательные» библиотеки: libtiff (до версии 3.9.0), libpng (до версии 1.2.22) и OpenJPEG (до версии 1.2.0).

Qt/Windows Open Source Edition – версия 4.4.0

http://www.trolltech.com/developer/downloads/qt/windows

В качестве основных достижений данной версии авторы выделяют следующие:

Однако мне бы хотелось дополнить этот список тем фактом, что теперь даже бесплатная версия Qt может использоваться для разработки приложений в среде Visual Studio 2005/2008 без каких-либо сторонних «заплаток».

Статьи

Looking forward to wxWidgets 3

http://wxwidgets.blogspot.com/2007/11/looking-forward-to-wxwidgets-3.html

Статья, опубликованная в блоге разработчиков кросс-платформенной библиотеки для создания самых разнообразных приложений wxWidgets, рассказывает о том, какие изменения и нововведения ждут нас в следующей «мажорной» версии 3.0, планируемая дата выхода которой пока, к сожалению, не оглашается. Можно выделить следующие ключевые моменты:

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

Introduction to Object Oriented Programming Concepts (OOP) and More

http://www.codeproject.com/KB/architecture/OOP_Concepts_and_manymore.aspx

Статья призвана помочь в понимании концепций объектно-ориентированного программирования с упором на .NET и C#. Написана в форме «вопрос-ответ» для более легкого восприятия читателем.

Win32 Tips, Tricks and Tutorials

http://www.catch22.net/tuts/

Это даже не статья, а целый набор пособий и руководств, посвященных разнообразным аспектам разработки Win32-приложений и объединенных общим авторским лозунгом «No MFC, No VB – pure Win32 C/C++ !!!» :). Рассматриваются такие темы, как дизайн и разработка элемента управления «редактор текста», реализация OLE Drag and Drop, использование библиотеки Cards.dll, «стыкующиеся» (docking) окна, реализация «разделителя» (splitter window) и программирование на уровне ядра Windows NT. Помимо этого, на сайте представлен целый ряд статей, посвященных программированию пользовательского интерфейса и системному программированию.

Несмотря на то, что перечисленные материалы обновлялись в период с 2001 по 2006 год, они, на мой взгляд, до сих пор представляют определенную ценность, особенно для начинающих и тех, кто по ряду причин не может использовать разного рода библиотеки – как входящие в поставку Microsoft Visual Studio, так и сторонние.

Vista UAC: The Definitive Guide

http://www.codeproject.com/KB/vista-security/UAC__The_Definitive_Guide.aspx

В этой, довольно объемистой статье автор описывает «внутренности» механизма User Account Control (UAC), появившегося в Windows Vista и добавившего разработчикам изрядной головной боли. Подробно рассматривается Elevation API и приводятся примеры его использования в приложениях; затрагиваются вопросы корректного содержания манифестов исполняемых модулей.

Повсеместно Протянутая Паутина

Highlight.js – версия 4.1

http://softwaremaniacs.org/soft/highlight/

Очередное обновление набора скриптов, предназначенных для раскраски исходного кода, отображаемого на HTML-страницах:


Список поддерживаемых языков расширяется от версии к версии и на данный момент включает в себя: Python, Ruby, Perl, PHP, XML, HTML, CSS, Django, JavaScript, VBScript, Delphi, Java, C++, RenderMan (RSL и RIB), SQL, SmallTalk, Axapta, 1С, Ini, Diff, DOS .bat и Bash. Скрипт подключается одним файлом и одним вызовом инициализирующей функции:

<script type="text/javascript" src="highlight.js"></script>
<script type="text/javascript">
  initHighlightingOnLoad();
</script>

Предусмотрена также возможность загрузки «распознавателей» только для тех языков, которые реально используются на HTML-странице, а также ручное указание того, к какому именно языку относится тот или иной фрагмент текста, что существенно ускоряет процесс загрузки страниц и сводит к нулю вероятность ошибок, возможных при эвристическом анализе. Например, на своем сайте я инициализирую Highlight.js следующим образом:

<script type="text/javascript" language="JavaScript">
initHighlightingOnLoad('cpp');
</script>

А использую так:

<pre><code class="cpp">// ddxv.h - interface of the extended DDX/DDV routines
...
</code></pre>

Результат можно увидеть по адресу http://zarezky.spb.ru/sources/ddxv.html.

Исходники

XHtmlTree – версия 1.6

http://www.codeproject.com/KB/tree/XHtmlTree.aspx

[C++, MFC] Элемент управления «дерево» от Hans Dietrich. Является наследником CTreeCtrl и предлагает следующие дополнительные возможности:


Рекомендую посетить авторскую страницу, посвященную этому элементу управления. Там вы сможете найти как множество «иллюстраций», демонстрирующих его возможности, так и подробное описание программного интерфейса с инструкцией по использованию и примерами кода.

Control Panel applet

http://www.viksoe.dk/code/cplapplet.htm

[C++, WTL] Обертка для написания апплетов «Панели управления» Windows от Bjarke Viksoe, инкапсулирующая все рутинные операции, которые необходимо реализовать при написании соответствующей DLL. Вот как выглядит код минимального апплета, созданного с ее помощью:

        #include
        "atlcplapplet.h"
        // [1]
        class CMyApplet : public CCPlAppletBase<CMyApplet>
{
public:
   BOOL ShowApplet(HWND hWnd, LONG_PTR lData, LPCTSTR pstrCommand)
   {
      AtlMessageBox(hWnd, _T("My Applet"), pstrCommand);
      return TRUE;
   }
};

// [2]

BEGIN_CPLAPPLET_MAP()
CPLAPPLET_ENTRY(CMyApplet, "Test.MyApplet", MyApplet)
END_CPLAPPLET_MAP()

CAppModule _Module;          // ATL/WTL Module
CCPlAppletModule _Applets;

// [3]

BOOL APIENTRY DllMain(HINSTANCE hModule, DWORD dwReason, LPVOID)
{
   if( dwReason == DLL_PROCESS_ATTACH ) _Module.Init(NULL, hModule);
   if( dwReason == DLL_PROCESS_DETACH ) _Module.Term();
   return TRUE;
}

extern"C" LONG APIENTRY CPlApplet(HWND hwndCPl, UINT msg, 
    LPARAM lParam1, LPARAM lParam2)
{
   return _Applets.CPlApplet(hwndCPl, msg, lParam1, lParam2);
}

STDAPI DllRegisterServer()
{
   return _Applets.RegisterApplets();
}

STDAPI DllUnregisterServer()
{
   return _Applets.UnregisterApplets();
}
ПРИМЕЧАНИЕ

[1] Этот код реализует класс единичного апплета, порожденный от CCPlAppletBase<>, реализующего некоторую базовую функциональность.

[2] Эти макросы реализуют регистрацию апплета при инсталляции, а также контролируют, как именно апплет управляет своим экранным именем и выбирает свою иконку во время выполнения.

[3] Оставшийся код реализует точку входа DLL и функции, которые она обязана экспортировать.

TreeView with Columns

http://www.codeproject.com/KB/tree/TreeWithColumns.aspx

[.NET, C# 2.0] Гибридный элемент управления, совмещающий возможности дерева и списка:


Бочка меда:

Ложка дегтя:

Tree control with columns

http://www.codeproject.com/KB/tree/CColumnTreeCtrl.aspx

[C++, MFC] Если вас заинтересовал предыдущий элемент управления, но вы ведете разработку с использованием библиотеки MFC, то вот его аналог от нашего соотечественника Олега Кривцова:


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

LINQ to CSV library

http://www.codeproject.com/KB/linq/LINQtoCSV.aspx

[.NET 3.5, C# 2008] Библиотека, облегчающая работу с файлами формата CSV при помощи запросов LINQ. Набор функций включает в себя:

LeerGridView: an Editable ListView

http://www.codeproject.com/KB/list/LeerGridView.aspx

[.NET, C# 2.0] Элемент управления «список» от leerjet с возможностью назначения отдельным строкам индивидуальных цветов и редактирования конечным пользователем отдельных ячеек:


Как пишет сам автор, он не стал изобретать колесо и в качестве базы для реализации использовал элемент управления SourceGrid, на официальном сайте которого, расположенном по адресу http://www.devage.com/, вы сможете найти его последнюю версию (в данный момент это 4.11) и документацию по использованию. Ниже приведена иллюстрация, демонстрирующая его возможности:


ListView Layout Manager

http://www.codeproject.com/KB/grid/ListView_layout_manager.aspx

[.NET, WPF, C# 3.0] Класс, предназначенный для управления «географией» (layout) элементов управления ListView и GridView. В число возможностей входят:

На ширину пропорциональных колонок, размеры которых задаются в процентах, оказывают влияние следующие факторы:

High-speed Charting Control

http://www.codeproject.com/KB/miscctrl/High-speedCharting.aspx

[C++, MFC] Элемент управления, предназначенный для построения двумерных графиков и диаграмм. В качестве основного достоинства автор приводит высокую скорость работы при манипуляциях с большими объемами данных:



Эта статья опубликована в журнале RSDN Magazine #1-2008. Информацию о журнале можно найти здесь
    Сообщений 0    Оценка 300        Оценить