Я создал простой модуль и разработал несколько простых методов, помогающих избежать использования неактуальных (в оригинале было "stale" - черствый, несвежий) указателей. Я настоятельно рекомендую добавить во все модули, содержащие указатели или объектные переменные секцию инициализации ('initialization') и установить все указатели (объектные переменные это те же реальные...
Использование remote debugging Довольно часто в КГ в рубрике "Программирование" можно встретить советы для начинающих программистов в среде delphi. Однако порой газету читают и законченные программеры. Именно для них, а также для тех, кто уже имеет определенный опыт программирования, и предназначена эта статья.
В статье описывается библиотека функций и классов AcedUtils, которая содержит реализацию распространенных структур данных и алгоритмов на языке Delphi для платформы Win32. Код библиотеки написан и протестирован на Borland Delphi 7.
Предисловие
При разработке функций и классов, составляющих библиотеку, основное внимание уделялось оптимизации кода по быстродействию. Но секрет...
Что же такое "Сообщение Windows"? Этот вопрос первым может возникнуть у начинающего программиста, тот же, кто когда-либо сталкивался с этим, хитро ухмыльнется и спрячет свои мысли в загадочную улыбку. Взаимодействие, как форма общения. В своей повседневной жизни, мы постоянно общаемся. Общение может подразумевать разговор, совместную работу и еще много всего прочего, однако в...
Рассматривать задачу будем на конкретном примере некого приложения.
Опишем предметную область и постановку задачи:
необходимо чтобы наше приложение, зарегистрировав себя как протокол в системе Windows, позволяло при нажатии на ссылкуу вида testproject:\\xxxxx запустило наше приложение (если оно не запущено) и передало ему параметры ссылки. Если же приложение уже запущено, то нам...
Выходные данные не указаны СиПроВер, 2007. Viva64 – это инструмент для разработчиков программ. С его помощью можно упростить перенос кода с 32-битных Windows-систем на 64-битные. Проблема ближайших дней – выпуск 64-битных программ. Персональные компьютеры с 64-битными процессорами появились на массовом рынке лишь с начала 2006 года. Практически сразу же начался процесс...
Автор: David Chisnall. Оригинальное название: «Writing Insecure C». Оригинал статьи: Part 1, Part 2, Part 3 (в данной редакции все три части объединены). Перевод на русский: n0xi0uzz. Оригинал перевода: http://netsago.org/ru/docs/1/14/ Коррекция и форматирование: Клуб программистов «Весельчак У». Публикуется с разрешения автора перевода. Содержание. Введение. Проверка ошибок....
Выходные данные не указаны СиПроВер, 2007. Рассмотрены программные ошибки, проявляющие себя при переносе Си++ - кода с 32-битных платформ на 64-битные платформы. Приведены примеры некорректного кода и способы его исправления. Перечислены методики и средства анализа кода, позволяющие диагностировать обсуждаемые ошибки. Введение. Отключенные предупреждения. Использование функций...
Подключаемся к СУРБД, используя компоненты Delphi.
Уже много лет для управления предприятиями (заводами, фабриками, магазинами) человечество использует компьютеры, на которых, в качестве основного приложения, функционирует СУРБД (система управления реляционными базами данных). Они представляют огромное подспорье в управлении предприятиями, позволяя хранить, модифицировать...
Для программирования расширенных хранимых процедур Microsoft предоставляет ODS (Open Data Service) API набор макросов и функций, используемых для построения серверных приложений позволяющих расширить функциональность MS SQL Server 2000. Расширенные хранимые процедуры - это обычные функции написанные на C/C++ с применением ODS API и WIN32 API, оформленные в виде библиотеки...
Здесь я расскажу о нескольких хитростях, которые можно использовать для защиты своих вирусов и/или своих программ против отладчиков всех уровней, уровня приложения и системы. Я надеюсь, что вам понравится эта статья.
Программирование на ассемблере под Win32 воспринимается весьма не однозначно. Считается, что написание приложений слишком сложно для применения ассемблера. Собственно обсуждению того, насколько оправдана такая точка зрения, и посвящена данная статья.
Она не ставит своей целью обучение программированию под Win32 или обучение ассемблеру, я подразумеваю, что читатели имеют...
Исходники Delphi - в ссылках текста, рабочие. Таких игр можно назвать очень много - от шашек и шахмат до сапера и морского боя. Все они объединены единой идеей - клеточное поле (или два - для морского боя), на котором разворачиваются события. Такие поля по своей сути плоские, но я встречал и трехмерные реализации с превосходной анимацией и детально проработанной графикой, но...
В перечень самых заветных желаний многих сограждан давно вписан красной строкой сокровенный вопрос: "Как бы сделать так, чтобы ничего не делать, но получать при этом хорошие деньги?". Давний автор "Компьютерры" Андрей Шипилов взял на себя труд рассмотреть одно из возможных решений.
Если вы работаете вебмастером и начальство попросило вас повесить на сайт контекстную рекламу, то...
Данная брошюра посвящена обзору методологии и программного обеспечения IBM Rational, которое помогает предприятиям автоматизировать и интегрировать бизнес-процесс по разработке программного обеспечения.
Продукты, услуги и лучшие методы организации работ Rational лежат в основе IBM Software Development Platform - платформы для разработки и развертывания программного обеспечения...
Введение • Особенности C++BuilderX • Поддержка создания приложений для мобильных устройств • Enterprise Studio для C++BuilderX • Средства визуальной разработки • Заключение В сентябре этого года корпорация Borland анонсировала новое, весьма необычное средство кросс-платформенной разработки — Borland C++BuilderX. Настоящая статья посвящена наиболее важным особенностям данного...
Средство управления требованиями Borland CaliberRM и средство управления конфигурациями программного обеспечения Borland StarTeam были приобретены корпорацией Borland совместно с компанией Starbase в начале 2003 года. Именно в это время компании-разработчики начали проявлять повышенный интерес к средствам управления жизненным циклом приложений, отличным от средств разработки...
Зачем нужно управление изменениями • Особенности StarTeam 6.0 • Установка продукта • Пользовательский интерфейс • Функциональность • Новшества версии 6.0 • StarTeam 6.0 с точки зрения Borland • Технические требования • Дополнительная информация 31 марта этого года корпорация Borland объявила о выпуске шестой версии системы управления требованиями Borland CaliberRM (этому...
Порою кажется, Что все вокруг устроено несложно: солнце светит, лампочки мигают, зарплату выдают вовремя. Но только захочешь сделать что-нибудь “полезное для общества”, приглядишься повнимательнее, и сразу все становится ой как не просто — на пути встают комплексные объекты и системы: жилищно-коммунальное хозяйство, экономический кризис, вертикаль власти, топология, логистика...
Давно канули в Лету те времена, когда один человек вполне мог справляться с реализацией программного проекта, обеспечивающего функциональность крупных предприятий. Постоянный рост сложности и комплексности не только целей проекта, но и инструментария их реализации приводит к тому, что уже трудно обойтись силами отдельных специалистов, а требуется слаженная работа целой команды....
В последние годы мы можем наблюдать драматические события на рынке средств разработки, которые определяются двумя главными тенденциями. Первая — разделение платформенных технологий на два лагеря: Microsoft .NET и Java/Open Source. При этом каждый из них использует собственную бизнес-модель работы на рынке: в первом случае речь идет фактически о монопродукте Visual Studio, а во...
Статья.
Источник: RSDN Magazine. — 2008. — №1.
Опубликовано: 17.07.2008
Исправлено: 26.11.2008
Версия текста: 1.0
Поскольку разработка плагинов – главная часть создания приложений для платформы Eclipse, то разработчики самой платформы приложили огромное количество усилий, чтобы сделать этот процесс максимально простым. Эксперты для создания компонентов Eclipse (плагинов...
Проекты
Cosmos – C# Open Source Managed Operating System
Средства разработки
Doxygen – версия 1.5.7
Библиотеки
Boost – версия 1.36.0
Исходники
Managed Control Panel Items
XGroupBox – замена стандартному groupbox
Towards Cleaner Code, A C# Asynchronous Helper
Towards Cleaner Code II, a C# GUI Invoke/Async Helper
Writing Your Own RTF Converter
CBitmapEx – C++-класс для...
Введение
Базис ФП – функция
Манипуляция функциями (ссылки на функции)
Тип функции
Делегаты
Анонимные методы и лямбда-выражения (или просто «лямбды»)
Зачем нужны лямбда-выражения?
ФП и SQL
Немного о проблемах делегатов
Кирпичики – или базовые «Функции высшего порядка» (ФВП)
Работа со списками
Объединяем все вместе
Вместо заключения
ВВЕДЕНИЕ
Думаю, что практически...
Создание отчетов. Пример №1. Пример №2. Настройка соединения с базой данных. Подключение отчета к программе. Излишне говорить, что бухгалтерии без отчетов не бывает. Какой универсальный язык программирования не использовался бы при создании бухгалтерских программ, почти всегда возникает потребность в отдельном дополнительном средстве — генераторе отчетов. Генератор отчетов...
Глава из книги ''Непрерывная интеграция: Улучшение качества программного обеспечения и снижение риска''.
Автоматизируйте построения.
Запускайте построение одной командой.
Отделяйте сценарии построения от Ide.
централизуйте элементы программного обеспечения.
Создайте строгую структуру каталога.
Ранний сбой построения.
Осуществляйте построение для каждой среды.
Типы и...
О чем речь?
Спецификация.
Раздел Template.
Раздел Includes: Импорт других спецификаций.
Спецификация в целом.
$-нотация.
Функции в $-выражениях.
Как?
Язык реализации.
Бесклассовое общество: ).
Описание реализации.
Чтение спецификации.
Основной класс реализации.
Модуль Program.
Главный метод приложения DoReport.
loadProperties.
loadProperties.
Чтение свойств....
Я всегда твердо верил, что нет ничего такого, что было бы невозможно понять. Необходимо только "выпарить" наиболее сложные части проблемы и потратить какое-то количество времени на понимание частей проблемы "кусок за куском". Затем эти части собрать вместе и понять проблему целиком.
Введение
Потоковые модели в COM имеют репутацию наиболее сложных для понимания. Возможно потому,...
Выходные данные не указаны Источник: RSDN Magazine 2008 №01. Версия текста 1.0 от 15.11.2008. В этой статье предлагается реализация шаблона «Фабричный метод с параметрами (Parameterized Factory Method)» – частный случай реализации фабричного метода средствами языка C# 2.0. Реализация основана на дополнительном классе KeyedFactory, в который сведена вся логика выбора фабричного...
Статья. Выходные данные неизвестны. —
В статье исследуется механизм работы WinAPI-функции UuidCreate, работающей в роли UUID-генератора в ОС Windows, а также вопрос применимости его в качестве генератора псевдослучайных чисел. Разбираются версии библиотеки rpcrt
4.dll, входящие в ОС Windows XP, Vista и Windows Server 2008.
Содержание
Сценарий 1 и 2
Вершина айсберга...
Статья из журнала RSDN Magazine 2008 №02 — М.: RSDN Magazine, 2008. — 21 с.
В Microsoft SQL Server 2008 появилось новая возможность – прозрачное шифрование БД (Transparent Data Encryption или TDE). Статья рассказывает о достоинствах и недостатках этой возможности, а также об особенностях ее использования.
Введение
Иерархия ключей
Решение каких задач по плечу TDE?...
Выходные данные не указаны Источник: RSDN Magazine 2008 №01. Версия текста 1.0 от 30.11.2008. Введение. Отличие библиотеки VivaCore от библиотеки OpenC++. Области применения библиотеки VivaCore. Основные термины. Общая структура библиотеки VivaCore. Подсистема ввода данных (Input subsystem). Подсистема предварительной обработки кода (Preprocessor subsystem). Лексический...
Основной задачей приложения для работы с базами данных, основанного на модели "Клиент-Сервер" (далее – просто приложение), является сохранение, удаление и редактирование данных, хранящихся на сервере (в данном случае имеется в виду SQL-сервер). Основным средством работы с данными является компонент класса Grid в Visual FoxPro. Работа с объектом Grid может осуществляться в двух...
Выходные данные не указаны Источник: RSDN Magazine 2006 №01. Версия текста 1.0 от 15.02.2008. Вопросы сохранения данных из объектов, так или иначе, возникают у каждого разработчика”. Именно с этой фразы я начал первую статью, посвященную сериализации, и с этой фразы мне бы хотелось продолжить описание развития идеи использования карт для организации сериализации. Если вы пишете...
Двумерные массивы используются для таких целей, как хранение изображений, задание графов и так далее. Но в большинстве языков программирования двумерный массив представляется в памяти как один большой одномерный массив размером КоличествоСтрок * КоличествоСтолбцов элементов, логически интерпретируемый как двумерный.
Иногда появляется необходимость в создании динамического...
B+-деревья Реализация двухуровневого массива Статья содержит описание реализации линейного односвязного списка на базе массивов. Пример реализации приведен с использованием Visual Basic 6.0 Так случилось, что я стал программистом 1С. Все прекрасно в этой среде, за исключением скорости. Эту проблему можно решить только одним способом: прямым доступом к файлам и обработкой...
Определение линейных списков
Внутреннее представление линейных списков
Реализация связанного списка на базе массивов
Литература
Статья содержит описание реализации линейного односвязного списка на базе массивов. Пример реализации приведен с использованием Visual Basic 6.0
Интро.
Использование BSP деревьев.
Создание BSP деревьев.
BSP деревья и другие алгоритмы рисования.
Эта статья объясняет как BSP деревья (binary space partition, двоичное деление пространства) могут быть использованы частью алгоритмов прорисовки для удаления односторонних поверхностей, частичной z-сортировки, удаления невидимых частей.
ВВЕДЕНИЕ
Многим структурам и объектам свойственна иерархичность. За примерами далеко ходить не надо. Почти все объекты состоят из частей, которые, в свою очередь, могут состоять из более мелких деталей. Общественные структуры, как правило, отражают жесткую иерархическую модель подчинения, сходящуюся к одному подразделению или человеку.
Из-за внешнего сходства, иерархические...
Определение Двоичного Дерева Поиска (Binary Search Tree, BST). Свойство упорядоченности двоичного дерева поиска. Способы обхода ДДП. Поиск вершины в ДДП. Поиск вершины с минимальным и максимальным значением ключа. Нахождение следующей и предыдущей вершины в ДДП. Добавление вершины. Удаление вершины. NIL, NULL и маленькие хитрости. Основная проблема использования ДДП....
В этом номере мы продолжаем разговор о структурах данных, начатый в предыдущем номере. Теперь мы рассмотрим более сложные структуры и алгоритмы, применяемые в реальном высокопроизводительном ПО. Сюда входят расширенные версии бинарных деревьев (так называемых AVL-деревьев), алгоритмы и хеширования. Это – самые быстрые из универсальных алгоритмов поиска и сортировки данных. В...
Три типа машин регулярных выражений. Различия синтаксиса регулярных выражений. Основы синтаксиса регулярных выражений. Искомые выражения. Классы символов (Character class). Квантификаторы, они же умножители (Quantifiers). Жадность. Вариации и группировка. Обратные ссылки, Lookahead- и Lookbehind-условия. Обратные ссылки. Lookahead- и Lookbehind-условия. Еще примеры. Регулярные...
Введение. Регулярные выражения. Проект REB. Шаблоны. Переменные. Хэш. Ссылки. Объекты. Заключение. Демонстрационная программа - 405 KB. Исходные тексты - 42 KB. REB.sourceforge.net. Введение. Согласитесь, в названии этой статьи имеется некоторое противоречие. Общепринятое мнение состоит в том, что интерпретатор не может быть использован в целях низкоуровневого программирования....
Математика. Умножение-деление. Сложение-вычитание. Жизнь. [Договорённости] Представление M, значение q. [Ограничения] Ресурсы, возможности, данные. [Договорённости] Нормализация. Итого – I: Математическая модель. [Следствия] Три варианта округления. [Следствия] Разные пути ведут к разным результатам. [Следствия] Сложение. [Следствия] Вычитание. [Следствия] Умножение....
Как, никто этого еще не придумал? Есть предложение Чего мы достигли? Аппроксимация функции 2x Новый вариант функции возведения в степень Аппроксимация функции log2x и “специализация” возведения в степень Заключение Кладезь мудрости КАК, НИКТО ЭТОГО ЕЩЕ НЕ ПРИДУМАЛ? Не берусь судить. Вероятно, задача о том, как максимально быстро возвести действительное положительное число в...
Необходимость фильтрации строк.
Стандартные методы фильтрации строк.
Фильтрация строк.
Структура библиотеки JFilter.
Классы.
Описание.
Применение.
Правила, входящие в поставку.
Сравнение работы разных типов обработки строк.
Заключение.
Литература.
НЕОБХОДИМОСТЬ ФИЛЬТРАЦИИ СТРОК.
Строки используются очень часто. А применимо к Интернет-программированию можно сказать, что...
Просто конечные автоматы.
Добавляем недетерминированность.
Подход №1.
Подход №2.
Подход №3.
… и эпсилон-переходы.
… и более формально.
И почему это круто.
Реализация методом «в лоб».
Производительность.
ε-переходы.
Реализация преобразованием в ДКА.
Теория.
Алгоритм.
Код.
Производительность.
Заключение.
Недетерминированные конечные автоматы – одна из моделей,...
Предисловие. Формальные языки и конечные автоматы.
Грамматика языка. Формы записи.
Конечные автоматы.
Автоматная грамматика. Порождающий автомат.
Разбирающий автомат.
Автоматы для регулярных выражений.
Структура материала.
Целое число.
Число с плавающей точкой.
Реализация автомата на switch.
Реализация с анализом типов символов.
Реализация на таблице.
E-mail....