Работа с библиотеками динамической компоновки (DLL) [Рейтинг: 4210 Автор: n/a] С самого рождения (или чуть позже) операционная система Windows использовала библиотеки динамической компоновки DLL (Dynamic Link Library), в которых содержались реализации наиболее часто применяемых функций. Наследники Windows - NT и Windows 95, а также OS/2 - тоже зависят от библиотек DLL в плане обеспечения значительной части их функциональных возможностей.
Программирование сокетов [Рейтинг: 4592 Автор: n/a] Для обеспечения сетевых коммуникаций используются сокеты. Сокет это конечная точка сетевых коммуникаций...
Стиль программирования [Рейтинг: 3491 Автор: n/a] Наверно сколько людей, столько и стилей написания исходников. Я много читал на эту тему, но, как и следовало ожидать, ничего универсального не нашел...
Макросы в C/С++ [Рейтинг: 27865 Автор: n/a] Макросы - это препроцессорные "функции" , т.е. лексемы, созданные с помощью директивы #define, которые принимают параметры подобно функциям. После директивы #define указывается имя макроса, за которым в скобках (без пробелов) параметры, отделенные запятыми и определение макроса, отделенное пробелом...
ООП и язык C [Рейтинг: 3336 Автор: n/a] Эта статья продолжает тему имитации C++ на чистом C. В данной статье я расскажу как в стиле чистого C организовать обработку данных различного типа, которые могут находится "под одной крышей", например в односвязных или двусвязных списках.
C или C++? [Рейтинг: 3546 Автор: Андрей Калинин] Существуют два диаметрально противоположенных, но одинаково распространенных мнения, которые можно выразить как "C++ это C с классами" и "C++ и C --- разные языки программирования". В общем-то, не важно, какого мнения придерживаться, но интересно иное --- в каких случаях какой из этих языков (или вариантов языка) предпочтительнее...
Оформление класса в виде COM объекта в C++ [Рейтинг: 3682 Автор: n/a] Оформление класса в виде COM объекта. Допустим у вас есть некоторое приложение, написанное на C++(VC++ если быть корректным). Как оно у вас появилось не суть важно, может быть это ваша старая разработка, может быть вы решили сначала отладить предметную часть. Важно то что вы горите желанием вынести часть классов в объектные модули и оформить их в виде ActiveX, COM и ATL объект ...
QNX: Драйверы. (часть 1) [Рейтинг: 3545 Автор: n/a] Часть 1: введение в предмет.
Создание простого приложения с плагинами в С++ [Рейтинг: 3571 Автор: n/a] В этой статье описываются принципы и решения, применяемые при проектировании приложений, которые будут использовать внешние, динамически подключаемые, модули. Эта статья более ориентирована на тех, кто хочет использовать механизмы подключения/отключения функциональности приложения, наподобии механизма Aobe Photoshop или Far, а не просто многократного использования кода в разных приложениях.
Передача сокетов между процессами в C++ [Рейтинг: 3287 Автор: n/a] Для того, чтобы передать сокет от одного процесса другому, можно воспользоваться функцией WSADuplicateSocket() из Winsock 2...
Файлы в MFC (работа с классом CFile) [Рейтинг: 2695 Автор: n/a] В данной статье рассказывается как открывать и закрывать файлы, а так же как считывать и записывать в них данные. Класс CFile обеспечивает основные бинарные оперции с файлами. Классы CStdioFile, CMemFile наследованы от CFile и используются для более специфической работы с файлами.
Сколько плюсов у C++? [Рейтинг: 2938 Автор: AvaLANche] Уже долгое время не прекращаются споры, что лучше: Delphi или C/C++/Visual C++. Причем в большинстве случаев сравниваются две принципиально разные вещи. Ведь до седьмой версии имя Delphi носила лишь среда разработки, а язык ее компилятора был Object Pascal (в Delphi7 борландовцы решили устранить такое упущение, и теперь и язык называется Дельфи). То же самое и с Visual C++: эта IDE "накручена" на Microsoft C/C++ Compiler (cl.exe). Поэтому корректным было бы сопоставление Delphi и Visual Studio или объектного паскаля и C++. Не будем погружаться в дебри Си: тут все довольно понятно, посмотрим лучше, что за зверь C++.
Клавиатурная снифалка на C++ [Рейтинг: 3840 Автор: Николай "GorluM" Андреев] За английским словом keylogger (key - клавиша, log – вносить в журнал) скрывается не что иное, как клавиатурный шпион. Так можно назвать, например, программу hookdump. Она логирует все нажатия клавиатуры, фиксирует имена открытых окон. В общем, приносит людям немало пользы :). А теперь представь, что такую же утилиту ты напишешь сам. Конечно, она будет немного попроще, но висеть в памяти и записывать все нажатия клавиш в файл она сможет.
C/C++: Пишем процесс-менеджер [Рейтинг: 3787 Автор: Николай "G" Андреев] Мы научимся не только перечислять и выводить на экран все запущенные на данный момент процессы, но и по-разному манипулировать ими. Научимся "завершать задачу", менять приоритет процесса, его свойства и получать о нем любую информацию. Все эти навыки могут очень пригодиться при написании программ под windows.
Расширения программ MS Office [Рейтинг: 3440 Автор: Сергей Выдров] Статья о расширении функциональности приложений MS Office с помощью дополнений (add-ins). Рассматривается создание таких дополнений на C++.
C# - разберемся, что же это [Рейтинг: 3104 Автор: Сергей Коломиец] Рассмотрим сначала, без лишних слов, два примера...
Файлы в MFC (работа с классом CFile) [Рейтинг: 3580 Автор: n/a] В данной статье рассказывается как открывать и закрывать файлы, а так же как считывать и записывать в них данные. Класс CFile обеспечивает основные бинарные оперции с файлами. Классы CStdioFile, CMemFile наследованы от CFile и используются для более специфической работы с файлами.
Создание классов с потоками [Рейтинг: 2961 Автор: Покрашенко Александр] Встречая в форумах вопросы о том, как создавать классы с потоками, я решил написать эту статью. Вся проблема состоит в том, что для создания потока, необходимо передать адрес функции потока, а передать адрес функции, которая является членом класса нельзя. Можно завести статическую функцию, но тогда теряется смысл создавать классы, так как не получится использовать все возможности ООП при таком подходе...
Класс для использования библиотеки UNRAR.DLL [Рейтинг: 2793 Автор: Алимов Рустем] Часто в программах перед использованием каких-либо данных требуется разархивация файлов. Ставший уже почти стандартом RAR предлагает для этих целей библиотеку UNRAR.DLL. Данный класс использует динамическую загрузку библиотеки, что позволяет программам выполнять основную часть своей работы без ее наличия.
Альтернативные средства разработки для Windows [Рейтинг: 3695 Автор: Петр Каньковски] Бесплатные средства разработки, основанные на C и C-подобных языках (MinGW, LCC32-Win, Digital Mars), и на Pascal (Free Pascal). Сравнение оптимизации, многочисленные ссылки.
Обработка исключений в C++ [Рейтинг: 2968 Автор: n/a] Язык С представляет программисту очень ограниченные возможности обработки исключений, возникших при работе программы. В этом отношении С++ намного развитее С. Здесь у программиста существенно большие возможности по непосредственной обработке исключений...
Ханойская башня [Рейтинг: 3382 Автор: n/a] Статья из цикла "Алгоритмы". Реализация широко известной задачи о Ханойских башнях...
Определение типа процессора [Рейтинг: 3920 Автор: n/a] В статье рассказывается, как определить тип, модель, производителя и характеристики процессора (или процессоров в случае многопроцессорной конфигурации). Приведенные теоретические сведения подкреплены практической разработкой - вам будет предложен класс С++, который поможет правильно определить параметры процессоров, установленных в системе...
Друзья в C++ [Рейтинг: 3382 Автор: n/a] Одно из основных преимуществ ООП - инкапсуляция данных в классе. Вы ознакомились со множеством примеров этой концепции скрытия данных в предыдущих листингах и ее выгодами, связанными с уменьшением работы по поддержке программы и более легкой отладкой...
Как вставлять в программу на C++ двоичные константы? [Рейтинг: 2686 Автор: Александр Шаргин] В языке C++ есть восьмеричные, десятичные и шестнадцатеричные константы. А двоичных - нет. Тем не менее, при помощи препроцессора можно соорудить макрос, который позволит нам смоделировать такие константы. Основная идея - преобразовывать восьмеричную константу в двоичную, выделяя из неё отдельные ци...
Как задать переменное число параметров в #define? [Рейтинг: 2865 Автор: Игорь Ткачёв] Этот способ предложил Dmitry A. Senkevich (2:5020/1300) в конференции RU.VISUAL.CPP,сорвав при этом бурные и продолжительные аплодисменты.
Строки в С и С++ [Рейтинг: 3410 Автор: Сергей Аристов] Это первая часть, в которой обсуждаются «традиционные» строки в С. В С++ существуют более удобные механизмы для работы со строковыми данными, эти механизмы рассматриваются во второй части статьи. А зачем вообще обсуждать неудобные С-строки, если есть С++? К сожалению, совсем забыть о строках в стиле С нельзя по двум причинам: 1. существует большое библиотек (например, API операционных систем) работающих именно с С-строками2. строковые классы в С++ все равно основаны на традиционных С-строках, и если мы хотим разобраться в том, как они работают, нам придется понимать их основы.
Автоматическое выделение памяти [Рейтинг: 2592 Автор: Алексей Ширшов] Эти классы родились по многочисленным просьбам трудящихся программистов сообщества RSDN. Они не являются аналогами CAutoBufBase и CAutoBuf<> соответственно, и предназначены совершенно для других задач. Они могут серьезно упростить код, который должен работать с большими массивами данных, затрачивая минимум ресурсов (памяти). Другими словами, память будет выделяться тогда, когда нужно, и в том объеме, в котором нужно.
Автоматическое выделение памяти [Рейтинг: 2585 Автор: Алексей Ширшов] Исходные тексты классов
Статистика использования памяти. Реализация в ascLib. [Рейтинг: 2557 Автор: Станислав Михайлов] Иногда на этапе окончательной отладки кажется, что программа работает безошибочно… но как-то слишком медленно. Конечно, можно посоветовать заказчику сделать очередной upgrage, но вряд ли подобное предложение его обрадует. Поэтому, лучше для начала попытаться понять, что же приводит к замедлению рабо...
Реализация сборки мусора на С++ [Рейтинг: 2539 Автор: Михаил Чащин] В данной статье мы рассмотрим обобщённую реализацию сборки мусора на С++. Будут обсуждены два конкретных алгоритма сборки мусора – “Mark-Sweep” и “Mark-Compact”, и их реализация. Мы также рассмотрим ограничения, которые накладываются на приложения при использовании сборки мусора, и изменения в компи...
QuickHeap [Рейтинг: 2588 Автор: Чистяков Владислав] Демонстрационный проект (VC7, C#)
Заметка о некоторых особенностях использования STL в DLL [Рейтинг: 2722 Автор: Роман Хациев] Если вы пытались работать с экземплярами классов STL, передавая их в DLL, или получая оттуда, а потом бросили это занятие из-за непонятных ошибок, возникающих в вашей программе, то эта заметка для вас. Даже если видимых проблем в вашей программе нет, то все равно прочитайте эту заметку, чтобы знать что делать, когда они появятся :)
Руководство по стандартной библиотеке шаблонов (STL) [Рейтинг: 2614 Автор: Михаил Гусаров aka MAG] Рассуждения на тему обобщения некоторых конструкций STL и неполной совместимости компиляторов со стандартом C++
Руководство по стандартной библиотеке шаблонов (STL) [Рейтинг: 3037 Автор: Александр Степанов] Стандартная Библиотека Шаблонов предоставляет набор хорошо сконструированных и согласованно работающих вместе обобщённых компонентов C++. Особая забота была проявлена для обеспечения того, чтобы все шаблонные алгоритмы работали не только со структурами данных в библиотеке, но также и с встро...
Q&A: lvalue и rvalue [Рейтинг: 2562 Автор: Павел Кузнецов] lvalue и rvalue - что это такое.
Deep C++. Operation: static_cast [Рейтинг: 2624 Автор: Robert Schmidt] Судя по группам новостей, посвященных C++, разница между четырьмя операторами приведения типа
Анатомия C Run-Time, или Как сделать программу немного меньшего размера [Рейтинг: 2558 Автор: Виталий Брусенцев] Статья посвящена вопросам оптимизации размера выполняемых модулей, генерируемых различнымикомпиляторами C++ (основное внимание уделено MS Visual С++). С этой целью рассматриваются особенности Библиотеки исполнения C/C++ и ее реализаций, а также процессы компиляции и компоновки приложений. Приведены практические приемы, позволяющие в ряде случаев уменьшить размер приложения до величины 3-4 килобайта.
Свойства в С++ [Рейтинг: 2542 Автор: Денис Майдыковский] В этой статье автор рассматривает различные способы реализации свойств встиле Visual Basic на C++. Некоторые способы специфичны для Visual C++,тогда как другие годятся для применения в любой программе, написанной наязыке C++.
Симуляция частичной специализации [Рейтинг: 2189 Автор: Павел Кузнецов] Время от времени при работе с шаблонами возникает необходимость специализировать шаблон класса по одному из аргументов. В качестве примера можно рассмотреть шаблон классов матриц, параметризованный типом элемента и размерами матрицы. Однако некоторые компиляторы не поддерживают частичную специализацию, и, как следствие, «не понимают» подобные конструкции. Желание получить эквивалентную функциональность при работе с такими компиляторами приводит к технике, описанной ниже.
Реализация сборки мусора на С++ [Рейтинг: 2317 Автор: Михаил Чащин] В данной статье мы рассмотрим обобщённую реализацию сборки мусора на С++. Будут обсуждены два конкретных алгоритма сборки мусора – “Mark-Sweep” и “Mark-Compact”, и их реализация. Мы также рассмотрим ограничения, которые накладываются на приложения при использовании сборки мусора, и изменения в компи...
Обработка событий в С++ [Рейтинг: 2614 Автор: Алексндр Клюев] Демонстрационный проект - events.zip
Мультиметоды и С++ [Рейтинг: 2582 Автор: Клюев Александр] Мультиметоды - виртуальные функции, принадлежащие сразу нескольким классам. В статье разбирается суть мультиметодов, их особенности, а также возможная реализация мультиметодов на C++.
Делегаты на C++ [Рейтинг: 2492 Автор: Александр Шаргин] Делегаты в CLR удобны, типобезопасны и эффективны. Последнее время на форумах RSDN часто поднимается вопрос о том, можно ли реализовать делегаты с аналогичными свойствами, оставаясь в рамках "чистого" C++. Оказывается, это вполне возможно. В этой статье я покажу, как это сделать.
Заливка замкнутой области [Рейтинг: 3207 Автор: n/a] Заливка замкнутой области.
Алгоритм Брезенхема построения окружности. [Рейтинг: 3788 Автор: n/a] Алгоритм Брезенхема построения окружности.
Вывод линии. Алгоритм Брезенхема [Рейтинг: 2870 Автор: n/a] Принцип Брезенхема состоит в том, чтобы с каждой итерaцией двигаться на одну точку по той оси проекция на которую больше...
Быстрый вывод треугольника [Рейтинг: 2875 Автор: n/a] Возьмем любой треугольник. Его изображение на экране - набор горизонтальных отрезков, причем из-за того, что треугольник - фигура выпуклая, каждой строке экрана соответствует не более одного отрезка. Поэтому достаточно пройтись по всем строкам экрана, с которыми пересекается треугольник (то есть, от минимального до максимального значения y для вершин треугольника), и нарисовать соответствующие горизонтальные отрезки...
Текстурирование [Рейтинг: 2725 Автор: n/a] Текстурирование.
Поворот битмапа на любой угол без использования GetPixel/SetPixel [Рейтинг: 3092 Автор: n/a] Поворот битмапа на любой угол без использования GetPixel/SetPixel.
Работа с библиотеками динамической компоновки (DLL) [Рейтинг: 2680 Автор: Андрей Уваров] С самого рождения (или чуть позже) операционная система Windows использовала библиотеки динамической компоновки DLL (Dynamic Link Library), в которых содержались реализации наиболее часто применяемых функций. Наследники Windows - NT и Windows 95, а также OS/2 - тоже зависят от библиотек DLL в плане обеспечения значительной части их функциональных возможностей...
C++, C#, C? [Рейтинг: 2922 Автор: Сергей Коломиец] Язык C# был выпущен в середине 2000 года группой программистов компании Microsoft под руководством небезызвестного в програмистских кругах человека Anders Hejlsberg. Того самого, кто создал Turbo Pascal и Delphi...
C или C++? [Рейтинг: 2778 Автор: Андрей Калинин] Существуют два диаметрально противоположенных, но одинаково распространенных мнения, которые можно выразить как "C++ это C с классами" и "C++ и C --- разные языки программирования"...
|
Совершить покупку |
|
|
|