Сообщений 0 Оценка 300 Оценить |
ПРИМЕЧАНИЕ Материалы данной статьи приведены на CD ROM. |
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.
http://www.codeproject.com/KB/scripting/JSLintVS.aspx
«Дополнение» (add-in) для Visual Studio версий 2005 и 2008, позволяющее выполнять проверку кода, написанного на JavaScript и являющегося частью текущего solution. Предусмотрены различные параметры проверки, а также выбор файлов, для которых ее следует осуществлять.
http://www.codeproject.com/KB/macros/PInvokeLibAddin.aspx
Еще одно «дополнение» для Visual Studio – оно предназначено для автоматизации вставки в управляемый код объявлений структур и функций Win32 API, вызываемых посредством механизма P/Invoke:
Если P/Invoke Manager еще «не знает» функции, объявление которой вам необходимо вставить, необходимо перейти на вкладку Define и выполнить следующие действия:
Аналогичным образом добавляются и структуры. По утверждению автора, большинство типов языка C уже определены и могут быть повторно использованы «как есть». Из недочетов можно отметить тот факт, что утилита не поддерживает указатели на что-либо, кроме строк символов.
http://www.codeproject.com/KB/macros/cpbrowser.aspx
Ну и поскольку Бог, как известно, любит троицу, я позволю себе предложить вашему вниманию «дополнение» для Visual Studio, позволяющее удобно скачивать заинтересовавшие вас статьи с сайта The Code Project и просматривать их, не покидая IDE:
Установив это «дополнение», вы получаете возможность полностью управлять сохраненными статьями; при щелчке по ссылке на пример архивный файл с его исходными текстами может быть автоматически загружен из Интернета, распакован и открыт в Visual Studio.
Данный «пакет возможностей» предназначен для расширения функциональности библиотек 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: Change Log.
http://www.codeproject.com/KB/macros/ListVisualizer.aspx
Визуализатор контейнеров List<T> and Dictionary<T,T>, позволяющий в удобной форме просматривать при отладке приложения их содержимое вместе с содержимым отдельных элементов:
http://www.slavasoft.com/hashcalc/index.htm
Быстрый и простой в использовании калькулятор, позволяющий вычислять так называемые «профили сообщений» (message digests), контрольные суммы и разного рода хэши как для файлов, так и для текстов и шестнадцатеричных строк. В распоряжении пользователя – 13 самых популярных алгоритмов:
http://freeimage.sourceforge.net/
В новой версии данной библиотеки для работы с изображениями добавлена поддержка двух новых графических форматов – JPEG2000 и OpenEXR. Помимо этого были обновлены три «вспомогательные» библиотеки: libtiff (до версии 3.9.0), libpng (до версии 1.2.22) и OpenJPEG (до версии 1.2.0).
http://www.trolltech.com/developer/downloads/qt/windows
В качестве основных достижений данной версии авторы выделяют следующие:
Однако мне бы хотелось дополнить этот список тем фактом, что теперь даже бесплатная версия Qt может использоваться для разработки приложений в среде Visual Studio 2005/2008 без каких-либо сторонних «заплаток».
http://wxwidgets.blogspot.com/2007/11/looking-forward-to-wxwidgets-3.html
Статья, опубликованная в блоге разработчиков кросс-платформенной библиотеки для создания самых разнообразных приложений wxWidgets, рассказывает о том, какие изменения и нововведения ждут нас в следующей «мажорной» версии 3.0, планируемая дата выхода которой пока, к сожалению, не оглашается. Можно выделить следующие ключевые моменты:
Хочется особо подчеркнуть, что наиболее значимым шагом вперед, сделанным в готовящейся версии, разработчики библиотеки считают именно объединение сборочных конфигураций в одну, что, по их мнению, позволит существенно упростить жизнь разработчиков.
http://www.codeproject.com/KB/architecture/OOP_Concepts_and_manymore.aspx
Статья призвана помочь в понимании концепций объектно-ориентированного программирования с упором на .NET и C#. Написана в форме «вопрос-ответ» для более легкого восприятия читателем.
Это даже не статья, а целый набор пособий и руководств, посвященных разнообразным аспектам разработки 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, так и сторонние.
http://www.codeproject.com/KB/vista-security/UAC__The_Definitive_Guide.aspx
В этой, довольно объемистой статье автор описывает «внутренности» механизма User Account Control (UAC), появившегося в Windows Vista и добавившего разработчикам изрядной головной боли. Подробно рассматривается Elevation API и приводятся примеры его использования в приложениях; затрагиваются вопросы корректного содержания манифестов исполняемых модулей.
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.
http://www.codeproject.com/KB/tree/XHtmlTree.aspx
[C++, MFC] Элемент управления «дерево» от Hans Dietrich. Является наследником CTreeCtrl и предлагает следующие дополнительные возможности:
Рекомендую посетить авторскую страницу, посвященную этому элементу управления. Там вы сможете найти как множество «иллюстраций», демонстрирующих его возможности, так и подробное описание программного интерфейса с инструкцией по использованию и примерами кода.
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 и функции, которые она обязана экспортировать. |
http://www.codeproject.com/KB/tree/TreeWithColumns.aspx
[.NET, C# 2.0] Гибридный элемент управления, совмещающий возможности дерева и списка:
Бочка меда:
Ложка дегтя:
http://www.codeproject.com/KB/tree/CColumnTreeCtrl.aspx
[C++, MFC] Если вас заинтересовал предыдущий элемент управления, но вы ведете разработку с использованием библиотеки MFC, то вот его аналог от нашего соотечественника Олега Кривцова:
Как можно видеть из приведенной иллюстрации, поддерживаются мелкие и крупные иконки для узлов, флажки рисуются в соответствии с текущей темой Windows, существует возможность отображения линий, соединяющих узлы, а также полнострочное выделение элемента. Помимо этого заявлена следующая функциональность:
http://www.codeproject.com/KB/linq/LINQtoCSV.aspx
[.NET 3.5, C# 2008] Библиотека, облегчающая работу с файлами формата CSV при помощи запросов LINQ. Набор функций включает в себя:
http://www.codeproject.com/KB/list/LeerGridView.aspx
[.NET, C# 2.0] Элемент управления «список» от leerjet с возможностью назначения отдельным строкам индивидуальных цветов и редактирования конечным пользователем отдельных ячеек:
Как пишет сам автор, он не стал изобретать колесо и в качестве базы для реализации использовал элемент управления SourceGrid, на официальном сайте которого, расположенном по адресу http://www.devage.com/, вы сможете найти его последнюю версию (в данный момент это 4.11) и документацию по использованию. Ниже приведена иллюстрация, демонстрирующая его возможности:
http://www.codeproject.com/KB/grid/ListView_layout_manager.aspx
[.NET, WPF, C# 3.0] Класс, предназначенный для управления «географией» (layout) элементов управления ListView и GridView. В число возможностей входят:
На ширину пропорциональных колонок, размеры которых задаются в процентах, оказывают влияние следующие факторы:
http://www.codeproject.com/KB/miscctrl/High-speedCharting.aspx
[C++, MFC] Элемент управления, предназначенный для построения двумерных графиков и диаграмм. В качестве основного достоинства автор приводит высокую скорость работы при манипуляциях с большими объемами данных:
Сообщений 0 Оценка 300 Оценить |