Параллельное программирование для многоядерных систем с помощью OpenMP
История
Проверка форм с помощью регулярных выражений в MFC
На этот раз я решил воспользоваться своей колонкой, чтобы описать одно интересное приложение, которое я создал с применением библиотеки RegexWrap (о ней читайте мою статью в этом номере). RegexForm — это система проверки форм для MFC на основе регулярных выражений. Данное приложение было главной причиной, побудившей меня реализовать библиотеку RegexWrap. Но поскольку многие детали не относятся к самим регулярным выражениям, здесь имеет смысл обсудить RegexForm, а не RegexWrap.
Как использовать лучшее из .NET в неуправляемом коде на C++
Managed Extensions (управляемые расширения) для C++ позволяют свободно смешивать неуправляемый (native) и управляемый код даже в одном модуле. Ух ты, жизнь прекрасна! Однако компиляция с ключом /clr может иметь нежелательные последствия. Этот ключ навязывает многопоточный режим и отключает некоторые полезные проверки периода выполнения. Он влияет на DEBUG_NEW в MFC, и некоторые классы .NET Framework могут конфликтовать с вашим пространством имен. И что делать, если в устаревшем приложении используется компилятор, не поддерживающий /clr? Есть ли способ воспользоваться Framework без Managed Extensions? Да!
Проверка форм с помощьюрегулярных выражений в MFC
На этот раз я решил воспользоваться своей колонкой, чтобы описать одно интересное приложение, которое я создал с применением библиотеки RegexWrap (о ней читайте мою статью в этом номере). RegexForm — это система проверки форм для MFC на основе регулярных выражений. Данное приложение было главной причиной, побудившей меня реализовать библиотеку RegexWrap. Но поскольку многие детали не относятся к самим регулярным выражениям, здесь имеет смысл обсудить RegexForm, а не RegexWrap.
Создание собственного компонента GINA.Часть 1
Уже несколько лет многие просят меня написать о GINA (Graphical Identification and Authentication) — компоненте, который служит точкой входа для интерактивной регистрации. Сегодня я начну рассказывать о нем. Это поможет вам, если вы собрались разработать свою реализацию этой штуковины. Я создам пример KIOSKGNA, самую простую реализацию GINA, какую я только смог придумать. В следующий раз я покажу FULLGINA с более богатой функциональностью. Примеры и фрагменты кода написаны на неуправляемом C++, наиболее подходящим для разработки GINA в наше время.
Неиспользуемые параметры, расширение контекстного меню для кнопок на панели задач и др.
Вопрос Мне попадался C++-код, где для неиспользуемых параметров применяется UNREFERENCED_PARAMETER, например:
int SomeFunction(int arg1, int arg2){ UNREFERENCED_PARAMETER(arg2) ...}
Но встречался и такой код:
int SomeFunction(int arg1, int /* arg2 */){ ...}
Не могли бы вы пояснить, в чем тут разница и что лучше?
Джуди Макгео (Judy McGeough)
Обобщения CLR против шаблонов C++
С выпуском Visual Studio 2005 в Microsoft .NET Frame-work появится поддержка модели параметризованных типов для обобщенного программирования. C++/CLI поддерживает два вида механизмов параметризации: обобщения CLR (общеязыковой исполняющей среды) и шаблоны C++. В предыдущей статье (
msdn.microsoft.com/msdnmag/issues/05/04/pureC) я рассмотрел характеристики, общие для обоих механизмов. В этой статье мы обсудим их различия, в частности по списку параметров и модели ограничения типов.Учет дочерних MDI-окон, отображение только папок
Вопрос Я пишу MDI-приложение (Multiple Docu-ment Interface) на основе MFC. Как проверить из родительского окна, все ли дочерние MDI-окна закрыты? Если все они закрыты, мне нужно активизировать одну секцию в основном окне.
Safe C and C++ Libraries для Visual Studio 2005 — библиотеки для создания безопасного кода
Когда выйдет Visual Studio 2005, вы обнаружите, что в библиотеки Visual C++ внесены существенные усовершенствования — результат полного пересмотра функций, содержащихся в C Runtime Library (CRT), Standard C++ Library (SCL), Active Template Library (ATL) и Microsoft Foundation Classes (MFC), с точки зрения безопасности. Углубленный анализ показал, что имеет смысл внести изменения, которые повысят безопасность и надежность приложений.
Мыслим шаблонно
Новичку, осваивающему какой-либо язык программирования, то и дело попадаются такие понятия как «процедурное программирование», «модульное программирование», «объектно-ориентированное программирование»; постепенно он начинает проникать в их суть. Термин «обобщенное программирование» куда более редок. Что же это такое, какие возможности оно нам предоставляет? Попробуем ответить на этот вопрос.
