Обновить
235.43

C++ *

Типизированный язык программирования

Сначала показывать
Период
Уровень сложности

Уроки по SDL 2: Урок 3 — События

Время на прочтение5 мин
Количество просмотров15K
Всем привет! Это третий урок по SDL 2. Информация берется из этого источника. Уроки по обработке событий на Lasy Foo' мне не понравились, так что я напишу свой, но материал можно найти здесь и здесь.

А мы начинаем, добро пожаловать на урок

События

Читать дальше →

Конкурс «Я — эксперт Intel Studio» с суперпризами для разработчиков

Время на прочтение2 мин
Количество просмотров1.8K
Раз или два в год наш блог устраивает акции «Задай вопрос эксперту Intel» — мы готовим статьи, в которых разработчики Intel отвечают на вопросы Хабражителей относительно разработок и технологий компании (скажем, в прошлом году речь шла о беспилотных автомобилях и Deep Learning). Но в 2019 мы решили превзойти себя и предложить читателям блога самим стать экспертами по одному из самых известных программных продуктов Intel. В самом деле, мы точно знаем, что многие из вас постоянно работают с Intel Parallel Studio и прекрасно в ней разбираются. Почему бы не поделиться своим опытом с другими?

Победителей конкурса ждет приз: профессиональная лицензия на Intel Parallel Studio XE 2019 с годом техподдержки. Да-да, та самая, за $1599. Условия — под катом.


Читать дальше →

Работа с API КОМПАС-3D → Урок 5 → Графические примитивы

Время на прочтение3 мин
Количество просмотров9.4K
Продолжаем цикл статей по работе с API САПР КОМПАС-3D Сергея Норсеева, инженера-программиста АО «ВНИИ «Сигнал», автора книги «Разработка приложений под КОМПАС в Delphi». В качестве среды используется C++ Builder. В предыдущих уроках по API КОМПАС Основы и Оформление чертежа мы исходили из того, что КОМПАС не запущен, в уроке Корректное подключение к КОМПАС мы проверяли наличие уже запущенного КОМПАСа и подключались к нему. В прошлом уроке Основная надпись разбирали, как заполнить основную надпись чертежа. В этом уроке продолжим рассмотрение интерфейсов системы КОМПАС и наконец-то начнем чертить.


Читать дальше →

Методология и руководство по стилю кода компании Ronimo

Время на прочтение16 мин
Количество просмотров5.4K
Я большой сторонний структурного подхода к работе. Программистам игр приходится создавать сложные системы и поэтому недостаточно просто плыть по течению. Я написал два документа о том, как мы в Ronimo пишем код, которые должен изучить в первый день работы каждый программист и стажёр. Наш документ по методологии объясняет рабочий процесс, а руководство по стилю рассказывает о системе нашего кода. Для начала я хочу раскрыть методологию и рассказать о причинах, стоящих за представленными в документе правилами.
Читать дальше →

1.1 SFML и Visual Studio

Время на прочтение6 мин
Количество просмотров101K


От переводчика: данная статья является первой в цикле переводов официального руководства по библиотеке SFML. Данный цикл статей ставит своей целью предоставить людям, не знающим язык оригинала, возможность ознакомится с этой библиотекой. SFML — это простая и кроссплатформенная мультимедиа библиотека. SFML обеспечивает простой интерфейс для разработки игр и прочих мультимедийных приложений. Оригинальную статью можно найти тут. Начнем.

Библиотека SFML предоставляет простой интерфейс для различных компонентов вашего компьютера, чтобы облегчить разработку игр и мультимедийных приложений. Она состоит из пяти модулей: system, window, graphics, audio и network.

Используя SFML, ваше приложение может быть скомпилировано и запущено на наиболее распространенных платформах: Windows, Linux, Mac OS X(планируется поддержка Android и IOS).

Предварительно скомпилированные SDK для вашей ОС доступны на странице загрузки.

SFML официально поддерживает C и .NET. Также, благодаря своему активному сообществу, она доступна на многих других языках, таких как Java, Ruby, Python, Go и др.
Читать дальше →

Снова про STL: контейнеры

Время на прочтение7 мин
Количество просмотров52K
В предыдущей заметке речь шла о массивах как прототипе и прародителе контейнеров. Теперь дошла очередь до собственно контейнерных классов и поддерживающих их библиотек.

Под термином библиотека стандартных шаблонов (STL, Standard Template Library) понимают набор интерфейсов и компонентов, первоначально разработанных Александром Степановым, Менг Ли и другими сотрудниками AT&T Bell Laboratories и Hewlett-Packard Research Laboratories в начале 90-х годов (хотя и позже ещё весьма многие приложили руку к тому, что стало на сегодня стандартным компонентом C++). Далее библиотека STL перешла в собственность компании SGI, а также была включена как компонент в набор библиотек Boost. И наконец библиотека STL вошла в стандарты C++ 1998 и 2003 годов (ISO/IEC 14882:1998 и ISO/IEC 14882:2003) и с тех пор считается одной из составных частей стандартной библиотек C++.

Стандарт не называет эту часть библиотеки STL, но эту хронологию хорошо бы учитывать, разбираясь с какой версией компилятора, языка и литературы вы имеете дело — в процессе сокращения HP STL до размеров, подходящих для стандартизации, часть алгоритмов и функторов выпали из состава библиотеки, а кое-что, со временем, и добавляется (например, расширение набора переопределенных прототипов некоторых методов контейнеров). По тексту будет использоваться традиционное название STL только чтобы было ясно какую часть стандартной библиотеки C++ мы имеем в виду.
Читать дальше →

Использование библиотеки OpenSSL в проектах на C++

Время на прочтение6 мин
Количество просмотров75K
image

В своем первом топике я постараюсь подробно объяснить как начать использовать библиотеку OpenSSL. Сразу хочу отметить, что статья ориентирована на новичков, а так как я сам один из них, исходный код выполнен без проверок и не претендует на звание лучшего. Все действия выполнялись под Windows со средой разработки Visual Studio 2013.
Читать дальше →

Управление памятью: Взгляд изнутри

Время на прочтение26 мин
Количество просмотров75K

Доброго времени суток!
Хочу представить вашему вниманию перевод статьи Джонатана Барлетта (Jonathan Bartlett), который является техническим директором в компании New Medio. Статья была опубликована 16 ноября 2004 года на сайте ibm.com и посвящена методам управления памятью. Хотя возраст статьи достаточно высок (по меркам IT), информация в ней является фундаментальной и описывает подходы к распределению памяти, их сильные и слабые стороны. Всё это сопровождается «самопальными» реализациями, для лучшего усвоения материала.

Аннотация от автора
Решения, компромиссы и реализации динамического распределения памяти
Получите представление о методах управления памятью, которые доступны Linux разработчикам. Данные методы не ограничиваются языком C, они также применяются и в других языках программирования. Эта статья даёт подробное описание как происходит управление памятью, на примерах ручного подхода (manually), полуавтоматического (semi-manually) с использованием подсчёта ссылок (referencing count) или пула (pooling) и автоматического при помощи сборщика мусора (garbage collection).

Читать далее...

Удобный лог не роскошь, а средство отладки, или как подключить dll при помощи h файла

Время на прочтение6 мин
Количество просмотров7.6K
image

ПроЛог


Не один программист, приступая к разработке приложения, не проходит мимо вопроса о логах. Вроде бы простой вопрос, но перебирая уже существующие варианты, понимаешь, что в каждом что-то неудобно: нет run-time отключения лога (только при компиляции), иногда нужно перенаправить лог в файл, иногда в communication port или еще куда-нибудь и т.д. и т.п. Писать полноценный вариант не хватает времени, а создавать наспех еще одну реализацию — рука не поднимается. И получается, как говорится, сапожник без сапог, даже еще хуже, ведь логи это инструмент разработки… А что если подойти к этому вопросу не спеша? Как разработчику мне бы хотелось видеть инструмент отладки таким:

  1. Легким и простым в использовании — чтобы можно было по умолчанию включить один h файл в проект и все заработало будь то старое или новое приложение.
  2. Расширяемым — чтобы добавив один h файл в проект, можно было нарастить функциональность настолько, насколько вам необходимо, не затрагивая при этом самого приложения (ведь часто приложение уже работает у клиента и трогать его не желательно).
  3. Конфигурируемым в полном объеме — разработчик в отличии от пользователя должен контролировать инструмент разработки в полной мере.

Читать дальше →

Прохождение интервью. Легендарные книги Амазона

Время на прочтение1 мин
Количество просмотров14K
Привет, Хабр!

А давайте поговорим про одну из легенд Амазона — книгу «Elements of Programming Interviews: The Insiders' Guide».

image
Читать дальше →

Ciklum Dnepropetrovsk C++ Saturday: Первый субботник года для любителей C++ рад встретить всех желающих

Время на прочтение1 мин
Количество просмотров3.9K
image

В субботу, 14 марта днепропетровский офис компании Ciklum приглашает всех любителей С++ на «субботник», во время которого в презентациях будут освещены следующие темы:
Читать дальше →

Короткая заметка про шаблоны и смешание выведение типа и явного его задания

Время на прочтение2 мин
Количество просмотров4.6K
Намедни решил написать свою библиотеку для работы с FITS-файлами. Да, я знаю, что есть CCFITS, но хотелось изобрести свой велосипед с… сами знаете.

Одна из возможностей формата — данные можно записывать разных типов в массивы разных размерностей.
Очевидный способ это реализовать это определить что-то типа того:

void setBytePix(int value);
void setAxisSize(const std::vector<int> &axis );

Однако данная конструкция не слишком удобна. Простой тестовый пример:

std::vector srcVector;
srcVector.push_back(1024);
srcVector.push_back(1024);
setAxisSize(srcVector);

Если бы вместо std::vector был бы QVector из Qt, все выглядело бы гораздо симпатичнее.
Читать дальше →

Создание аудиоплагинов, часть 2

Время на прочтение5 мин
Количество просмотров18K
Все посты серии:
Часть 1. Введение и настройка
Часть 2. Изучение кода
Часть 3. VST и AU
Часть 4. Цифровой дисторшн
Часть 5. Пресеты и GUI
Часть 6. Синтез сигналов
Часть 7. Получение MIDI сообщений
Часть 8. Виртуальная клавиатура
Часть 9. Огибающие
Часть 10. Доработка GUI
Часть 11. Фильтр
Часть 12. Низкочастотный осциллятор
Часть 13. Редизайн
Часть 14. Полифония 1
Часть 15. Полифония 2
Часть 16. Антиалиасинг



Давайте получше рассмотрим наш тестовый проект. Самые важные файлы — resource.h, MyFirstPlugin.h и MyFirstPlugin.cpp. На данный момент плагин представляет собой простой регулятор громкости звука.
Читать дальше →

Ближайшие события

Cross-compile POCO из Windows для WinCE

Время на прочтение5 мин
Количество просмотров7.5K
POCO — легковесный, мультиплатформенный open-source набор библиотек и классов С++, облегчающих написание мультиплатформенного ПО.
Выпускается под Boost Software License.
Дополнительные сведения о POCO:
pocoproject.org/features.html
ru.wikipedia.org/wiki/POCO
Прекрасно организованная документация по структуре классов доступна в html-онлайн, html-оффлайн.
Документация по основным возможностям с примерами использования — в pdf: pocoproject.org/documentation/index.html

POCO имеет богатейший функционал — очень многое — всё-всё, что нужно для счастливой жизни C++ программиста! Работает инструментарий отлично, имеет продуманный API.

POCO собирается для большого числа ОС, в т.ч. Desktop Windows, Windows CE, Linux.

По своему опыту замечу, что POCO для этих ОС собирается без проблем.
Методику кроссплатформенной сборки из Windows для этих ОС постараюсь вам, уважаемые с++ разработчики, донести в своих трёх статьях «Cross-compile POCO из Windows».

Статья «Cross-compile POCO из Windows для Linux» habrahabr.ru/post/222661
Читать дальше →

Пишем библиотеку DLL для Metastock с нуля. Часть 3

Время на прочтение16 мин
Количество просмотров3K
DLL для Metastock

В этой статье я объясню, как подключить к нашим индикаторам аргументы (часть1, часть2). За аргументы в динамической библиотеке MSX DLL программы Metastock отвечают две служебные функции: MSXNthArg и MSXNthCustomString.
Читать дальше →

Сравнение анализаторов кода: CppCat, Cppcheck, PVS-Studio, Visual Studio

Время на прочтение3 мин
Количество просмотров25K
Авторы: Евгений Рыжков (EvgeniyRyzhkov), Андрей Карпов (Andrey2008), Павел Еремеев (Paull), Святослав Размыслов (svyatoslavmc).

CppCat vs PVS-Studio vs Cppcheck vs Visual Studio

Мы провели подробное сравнение четырёх анализаторов Си/Си++ кода: CppCat, Cppcheck, PVS-Studio и статический анализатор, встроенный в Visual Studio 2013. Это серьезное исследование, на которое нами было потрачено около 170 человеко-часов и которое, на наш взгляд, хорошо отражает картину, существующую на данный момент.
Читать дальше →

Генерация числа прописью из любого произвольного числа

Время на прочтение2 мин
Количество просмотров24K
Как-то раз мне понадобилось написать генерацию суммы прописью для одного проекта. Поиск готовых решений ни к чему не привел, в результате родился маленький С++ класс, генерирующий прописной эквивалент числа. В качестве приятного бонуса я добавил туда поддержу рублей и долларов (это требовалось для того проекта). Под катом немного теории и ссылка на Git-репозиторий.
Читать дальше →

Однострочники на Си/С++. Часть 2

Время на прочтение2 мин
Количество просмотров9.6K

Ранее я уже публиковал статью о Однострочниках на С++. Так в этом посте я хочу упомянуть ещё несколько алгоритмов, а также несколько реализаций алгоритма обмена двух чисел(с вычислением времени работы).
Всех заинтересовавшихся прошу под кат;)
Читать дальше →

Основы создания игрового движка: таймер

Время на прочтение6 мин
Количество просмотров9.1K
Публикуется по просьбе моего знакомого, если вам понравится статья, можете выслать ему инвайт.
Мыло скажу в ПМ или могу написать здесь же. :)


В данной статье я хочу рассказать, как начал писать игровой движок, столкнулся с проблемой написания точного таймера и как ее решил. Я уверен, что почти все рано или поздно сталкиваются с такой проблемой, поэтому моя статья будет полезна тем, кто в процессе создания таймера или только задумывается о ней. Я не претендую ни на чистоту кода, ни на идеальность принятых решений в данных условиях. А теперь покончим с личными местоимениями и перейдем к собственно проблеме.

Цель: написать точный таймер для использования в игровом движке (а это значит, что помимо отмерения отрезков времени нам необходимо обеспечить работу событий, возникающих через заданное время).
Читать дальше →
12 ...
216

Вклад авторов