DevDoc home page DevDoc background gradient
 
   
Имя Пароль Запомнить Зарегистрироваться

Статьи

С++

Наименование/Обновления Автор Рейтинг
Отладка приложений. Часть 1.
2006-12-24 13:19:07
Методы уменьшения ошибок в приложении, написанном на C++. В этой части рассматриваются методы пассивной отладки приложения. Каждый, кто пишет на С++ должен в совершенстве владеть методами поиска и исправления ошибок, чтобы разрабатывать надежный код.
alexander 3.1724
Отладка приложений. Часть 2.
2007-01-05 16:38:47
Методы уменьшения ошибок в приложении, написанном на C++. В этой части продолжают рассматриваются методы пассивной отладки приложения чтобы разрабатывать надежный код.
alexander 3.3043
Отладка приложений. Часть 3.
2007-01-19 20:25:46
В этой части рассматриваются типы отладчиков и их особенности.
alexander 3.2
Отладка приложений. Часть 4.
2007-01-26 18:14:56
Особенности работы с точками останова. Отладчики предоставляют очень много возможностей для работы с точками останова, которые позволяют увеличить эффективность отладки. В статье дается обзор точек останова на инструкции и на данные, а также условных точек останова. Отладка программы станет гораздо проще, если вы знаете все о средствах отладки.
alexander 2.7143
Отладка приложений на C++. Часть 5
2007-02-09 22:23:22
Записывать и анализировать дампы памяти процесса (minidump) при возникновении сбоя проще, чем многие себе это представляют. При этом это очень мощный инструмент поиска ошибок, когда нет возможности запустить программу под отладчиком. Начинайте писать надежные приложения уже сегодня.
alexander 3.2766
Отладка приложений на C++. Часть 6 – Поиск ошибок
2007-02-16 21:58:17
Существует ли универсальная методика поиска ошибок? Узнать универсальный шаблон или инструкцию, следуя которой можно найти любую ошибку в программе – мечта каждого, кто хоть раз видел, как работают профи. Было ли у Вас, что вы потратили день на поиск бага, а потом ваш коллега нашел его с первого взгляда? Статья дает ключ к пониманию того, как можно осуществлять эффективный поиск и исправление ошибок
alexander 3.2766
Виртуальные функции – низкоуровневый взгляд
2007-05-29 18:22:00
Описание виртуальных функций есть в каждом учебнике по C++. А что реально мы о них знаем? Между тем это один из трех «китов», на котором держится ООП. Сегодня сложно представить крупный проект, в котором бы не использовался полиморфизм. Такие технологии, как COM, полностью построены на этой концепции. В статье даются ответы на самые актуальные вопросы по данной тематике: начиная от основ и заканчивая описанием внутреннего устройства виртуальных функций.
alexander 4.7225
Инициализация с помощью шаблонов
2007-03-26 22:21:36
В практике программирования достаточно часто возникает задача, когда надо создать структуру и обнулить ее с помощью функции memset. Многие структуры Microsoft использует член структур cbSize в который надо записывать размер структуры. Другая типовая задача, когда класс имеет несколько конструкторов, в каждом из которых надо делать одинаковую инициализацию членов. Все эти задачи решаются с помощью нескольких строчек кода. Только вот писать одни и те же строчки не очень хорошо. В мире объектно-ориентированного программирования просто необходимо повторно использовать код. Это не только хороший стиль, но улучшение читаемости программ. В статье рассмотрен несколько необычный, но действенный способ инициализации.
alexander 3.4348
Порядок инициализации C++ объекта – это важно!
2007-03-26 22:24:48
Узнать порядок инициализации и конструирования объекта можно из любого хорошего учебника по C++. Тем не менее, существуют вещи, которые не описаны ни в одном пособии. Знаете ли Вы, как порядок создания объекта может повлиять на вашу программу? Какие ошибки могут при этом возникнуть? Невинные на первый взгляд действия могут привести к фатальным последствиям. Статья дает представление о важных аспектах конструирования и инициализации объекта. Рассчитано на широкий круг программистов.
alexander 3.5763
Протоколирование работы приложения
2007-04-02 20:41:04
Протоколирование работы приложения это хороший инструмент поиска ошибок на стороне клиента. В статье рассмотрены идеи по реализации библиотеки логгирования сообщений от программы.
alexander 3.0667
Удаленная отладка приложений
2007-04-09 21:00:19
Удаленная отладка это еще один полезный инструмент, который должен быть в арсенале профессионального программиста на C++. Статья содержит материал по возможностям Visual Studio по отладке на удаленных компьютерах по сети.
alexander 3.3333
Введение в обработку структурированных исключений SEH
2007-04-16 23:02:40
Структурированная обработка исключений (SEH) помогает писать надежные программы. Этот механизм заложен в саму структуру Windows и теоретически может быть использован из любого языка программирования. В языке C++ есть встроенная поддержка SEH. Эта статья открывает цикл по обработке исключений. Она дает базовые представления о возможностях SEH.
alexander 3.3333
Структурная обработка исключений (SEH) в примерах. Часть 1
2007-04-23 23:44:44
Продолжение цикла статей о структурной обработке исключений (SEH). Исключения вносят некоторую путаницу в порядок выполнения программы. При работе с исключениями порядок выполнения кода может быть очень запутанным, но вполне предсказуемым. В статье на примерах показаны все хитросплетения работы системы SEH.
alexander 3
Структурная обработка исключений (SEH) в примерах. Часть 2
2007-05-24 19:21:03
Исключения вносят некоторую путаницу в порядок выполнения программы. При работе с исключениями порядок выполнения кода может быть очень запутанным, но вполне предсказуемым. Продолжаем на примерах рассматривать все хитросплетения работы системы SEH.
alexander 3.3684
SEH исключения VS С++ исключения
2007-05-30 19:06:56
Программистам на C++ доступны два типа исключений. Возникает вопрос: что лучше использовать: C++ исключения или SEH. Ответ можно найти в этой статье. Здесь рассматриваются низкоуровневые особенности реализации C++ исключений в MS VC. Также даны рекомендации по использовании SEH и C++ исключений в одной программе одновременно.
alexander 3.0952
Необычное применение SEH
2007-06-25 18:21:19
Это последняя статья цикла про SEH. В ней описывается весьма оригинальный способ применения этого механизма. Если вы интересуетесь разными трюками в программировании - эта статья для Вас. Читайте!
alexander 3.0298
20 ловушек переноса Си++ - кода на 64-битную платформу
2007-07-10 10:29:17
Процессоры с разрядностью 64 бита уже перестали быть модной новинкой. Их все чащи и чаще можно встретить на компьютерах пользователей. Тем не менее, программного обеспечения, которое на полную катушку использует преимущества повышенной разрядности все еще мало. Вашему вниманию предлагается статья, посвященная переносу программного кода 32-биных приложений на 64-битные системы. Статья составлена для программистов, использующих Си++, но может быть полезна всем, кто сталкивается с переносом приложений на другие платформы.
alexander 3.2222
Виртуальное наследование
2007-09-03 18:28:04
Все знатоки С++ уже успели оценить этот материал по достоинству. Статья приоткрывает завесу того, как работает виртуальное наследование, какие процессы при этом происходят. На форумах не утихают споры о необходимости этих знаний, тем не менее профи не спешат ими делиться. Вы тоже хотите стать мастером программирования на Си++? Тогда читайте новый материал на http://www.devdoc.ru!
alexander 3.7333
Многопоточное программирование. Часть 1
2007-09-25 08:48:07
Это первая статья цикла о многопоточном программировании. В ней даются базовые сведения о потоках, замечания по быстродействию многопоточных приложений, а также обзор API функций для создания и разрушения потоков. Статья ориентирована на начинающих программистов.
alexander 3.7237
Многопоточное программирование. Часть 2
2007-11-26 18:25:49
Продолжение цикла статей о многопоточном программировании. Вы задумывались что представляет собой поток на низком уровне? Как потоки взаимодействуют с функциями стандартной библиотеки? Это те вещи, которые должен знать любой современный программист. Знание некоторых трюков позволяет получить огромную власть над всеми потоками в системе.
alexander 3.6863
Забытые проблемы разработки 64-битных программ
2007-12-24 18:52:53
История развития 64-битных программных систем не нова и составляет уже более десятилетия [1]. В 1991 году был выпушен первый 64-битный микропроцессор MIPS R4000 [2, 3]. С тех пор в форумах и статьях возникали дискуссии посвященные переносу программ на 64-битные системы. Началось обсуждения проблем связанных с разработкой 64-битных программ на языке Си.
Andrey_Karpov 3.3333
Многопоточное программирование. Часть 3. (Синхронизация потоков)
2008-06-23 10:04:55
В литературе и в Интернете часто пишут, что разработка многопоточных приложений намного сложнее, чем однопоточных. Основная сложность – это синхронизация выполнения потоков как на этапе разработки, так и на этапе сопровождения кода. В C++ самые сложные ошибки, как привило, связаны с некорректным использованием памяти и ошибками синхронизации потоков. В этой статье содержатся начальные сведения по синхронизации потоков.
alexander 3.9655
Многопоточное программирование. Часть 4. (DeadLock)
2008-12-26 17:15:33
Синхронизация потоков это сердце многопоточного программирования. От этого зависит быстродействие и надежность программ. Знание правил синхронизации сильно облегчает жизнь программисту. Но даже опытные разработчики могут допустить ошибку и внезапно обнаружить, что все потоки в системе "повисли". Как правило во всем виноват deadlock или по другому взаимная блокировка. Давайте посмотрим, что это такое!
alexander 3.8333

ATL/MFC

Наименование/Обновления Автор Рейтинг
Скрытые возможности CListCtrl. Виртуальный список
2007-02-03 12:22:48
Все, кто программирует на MFC или WinAPI, рано или поздно сталкиваются со списками в интерфейсе своего приложения. На первый взгляд этот простой элемент управления в Windows предоставляет потрясающие возможности для программиста. Зная все его особенности, можно создавать высокопроизводительные приложения. Как? Читайте статью!
alexander 3.1073
Взгляд на CListCtrl изнутри - меняем внешний вид
2007-02-23 18:09:35
А вы умеете использовать ВСЕ возможности CListCtrl? Если уверены, дальше можно не читать. В статье рассматривается по шагам, как система рисует содержимое списка. Ваша программа может значительно влиять на этот процесс и изменять внешний вид списка или его отдельных элементов. Статья содержит исходники программы, которая демонстрирует это на практике.
alexander 3.6441
Использование checkbox в списке ClistCtrl
2007-03-05 20:54:19
CListCtrl содержит множество опций, которые позволяют изменять внешний вид и поведение списка. В статье рассматриваются способы добавления checkbox’ов к каждому элементу списку. Комбинируя эти техники с другими возможностями списков – можно получать профессионально оформленные программы.
alexander 3.5

Низкоуровневое программирование

Наименование/Обновления Автор Рейтинг
Невидимый софт
2007-02-02 17:06:08
В последнее время интерес к программам-невидимкам снова возрос. В первую очередь это связано с появлением у рядовых пользователей WinXP. Эта ОСь, как известно, обладает всеми защитными особенностями линейки NT. И поэтому левые процессы стало “немножко” сложнее прятать от пользователя. Но и появление новых методов сокрытия присутствия существенно прибавилось ;). В данной статья я расскажу о новом способе “невидимости” (причём этот способ хорошо работает как в 9x, так и в XP).
ZeroIce 2.9318
Note for BTA dll
2007-02-23 18:13:57
Пару дней назад ко мне в руки попал очередной "хакерский" диск с многообещающим названием "Всё что надо хакеру/крэкеру для взлома любой системы" (круто! :)). На диске содержится много "полезного" софта для истинного компьютерного хулигана.... И среди всего этого попались мне интересные проги, а именно OpenPass, Behind The Asterisks и MadExplorer. Первые две занимаются тем, что показывают пароли находящиеся за звёздочками. Но особенность их в том, что они не используют DLL....
ZeroIce 3.0238

Этюды

Наименование/Обновления Автор Рейтинг
Обмен значений
2007-03-26 22:28:50
Задача: Требуется написать код для обмена значений двух переменных без создания временной копии.
alexander 3.0238
Циклический сдвиг массива
2007-04-02 20:44:39
Пусть у нас есть массив размером N. Нам надо написать процедуру, которая бы выполняла циклический сдвиг вправо на K элементов. K может быть любым, в т.ч. больше N. При этом запрещено...>>>
alexander 3.1569

Общие вопросы

Наименование/Обновления Автор Рейтинг
Почему разваливаются крупные проекты
2009-04-07 00:06:36
Команды которые понимают принципы работы над большими проектами через пару месяцев оставляют далеко позади своих конкурентов. Те кто не понимает и осознает - учатся. Те кто думает, что все знает, но мало что понимают в работе над крупными проектами, расстраиваются из-за очередной неудачи и списывают все на руководство и плохую методологию разработки. Рецепт удачи между тем достаточно прост.
alexander 3.7857

Разработка на QT

Наименование/Обновления Автор Рейтинг
Введение в QT
2010-04-17 02:45:06
Я начинаю публикацию цикла статей о библиотеке QT. На протяжении последующих выпусков я покажу, как пользоваться этим замечательным средством разработки и какие уникальный возможности оно предоставляет.
alexander 4.3158
QueryPerformanceCounter – бомба замедленного действия
2010-10-25 01:56:29
Считается что QueryPerformanceCounter это самый точный таймер в Windows. Это откровенная ложь!
alexander 4.4
Особенности работы с потоками в QT
2011-05-04 15:41:58
Меня побудило написать эту статью серия тестовых заданий, которые я проверял. Я был крайне удивлен, что почти все они содержали однотипные ошибки. Многопоточное программирование по праву считается одной из сложных вещей для понимания. Но помимо концепции надо очень хорошо понимать особенности инструмента, который используется. В QT взаимодействие потоков организовано не совсем очевидным на первый взгляд образом. Оно несколько отличается от той модели потоков, которая представлена в native API операционных систем. Но если разобраться, то в QT все логично.
alexander 4.6923

Copyright (C) Kudinov Alexander, 2006-2012

Перепечатка материалов с данного сайта запрещена без письменного разрешения автора. При перепечатке обязательно указывать ссылку на оригинал.

Generation time: 0,0496590137482 seconds