Статья рассчитана на людей, которые знакомятся со средой Visual Studio и пытаются компилировать в ней свои Си++-проекты. В незнакомой среде всё кажется странным и непонятным. Особенно новичков раздражает файл stdafx.h, из-за которого возникают странные ошибки во время компиляции. Очень часто всё заканчивается тем, что новичок долгое время везде старательно отключает Precompiled Headers. Чтобы помочь людям разобраться что к чему, и была написана эта статья.
Читать полностью »
Рубрика «c++» - 199
Для новичков про stdafx.h
2014-06-25 в 6:34, admin, рубрики: c++, visual c++, Visual Studio, Блог компании PVS-Studio, препроцессор, Си, метки: c++, visual c++, Visual Studio, препроцессор, СиСоздание аудиоплагинов, часть 9
2014-06-24 в 17:40, admin, рубрики: c++, dsp, Martin Finke, Oli Larkin, Reaper, Visual Studio, VST, xcode, перевод, Работа со звуком, метки: c++, dsp, Martin Finke, Oli Larkin, Reaper, Visual Studio, VST, xcode, АУ, перевод Все посты серии:
Часть 1. Введение и настройка
Часть 2. Изучение кода
Часть 3. VST и AU
Часть 4. Цифровой дисторшн
Часть 5. Пресеты и GUI
Часть 6. Синтез сигналов
Часть 7. Получение MIDI сообщений
Часть 8. Виртуальная клавиатура
Часть 9. Огибающие
Звук интересен тогда, когда в нем происходят какие-то изменения. Давайте сделаем генератор огибающей (envelope), которая будет менять громкость звука.
Читать полностью »
Команда PVS-Studio и CppCat расширяет кругозор, выполняя разработку на заказ
2014-06-23 в 6:11, admin, рубрики: c++, cppcat, outsourcing, pvs-studio, аутсорсинг, Блог компании PVS-Studio, заказная разработка, код, разработка, Си, метки: c++, cppcat, outsourcing, pvs-studio, аутсорсинг, заказная разработка, код, Си
Как вы знаете, основная наша деятельность – это разработка анализаторов кода PVS-Studio и CppCat. И хотя мы давно и, как нам кажется, успешно этим занимаемся, недавно у нас появилась необычная мысль. Все-таки мы не пользуемся своими инструментами в том режиме, что и наши клиенты. Нет, конечно, мы проверяем код PVS-Studio с помощью PVS-Studio. Но откровенно говоря, проект PVS-Studio не такой уж большой. И работа с кодом PVS-Studio по стилю и характеру отличается от, к примеру, работы с кодом Chromium или LLVM.
Нам хотелось побывать в шкуре своих клиентов для того, чтобы понять, как наш инструмент используется в долгосрочных проектах. Ведь проверки проектов, которые мы делаем регулярно и, про которые пишем много статей, это как раз тот стиль использования анализатора, против которого мы активно выступаем. Неправильно запустить разово анализатор на проекте, исправить несколько ошибок и повторить это через год. При написании кода анализатор надо использовать регулярно, каждый день.
Ну да ладно, к чему это все? Наши теоретические желания попробовать себя в других проектах совпали с практическими предложениями, которые постепенно стали к нам поступать. В прошлом году мы решили выделить у нас в компании команду, которая бы занималась – о ужас! – разработкой на заказ. То есть участвовала в сторонних проектах в качестве программистов. Причем нам было интересно участвовать в долгосрочных и довольно крупных проектах, т.е. не менее 2-3 разработчиков и не менее 6 месяцев разработки. У нас было две цели:
- попробовать альтернативный тип бизнеса (заказную разработку помимо продуктовой разработки);
- самим посмотреть на использование PVS-Studio в долгосрочных проектах.
И первая, и вторая задача оказались удачными. Но эта статья не про бизнес по заказной разработке, а про наш опыт. Имеется в виду не организационный опыт. Про это и так много статей. Про опыт работы с кодом чужих проектов. Про это мы и хотим рассказать.
Читать полностью »
Работа с ложными срабатываниями в PVS-Studio и CppCat
2014-06-20 в 18:00, admin, рубрики: c++, code review, cppcat, pvs-studio, static code analysis, Блог компании PVS-Studio, обзор кода, разработка, статический анализ кода, метки: c++, code review, cppcat, pvs-studio, static code analysis, обзор кода, Си, статический анализ кода
Недавно я решил вновь проверить физический движок Newton Game Dynamics. Код проекта качественный. Поэтому почти не было предупреждений, выявивших ошибки. Зато было несколько десятков ложных срабатываний. Вроде бы писать статью не о чем. Но мне пришла в голову мысль, что можно написать о том, как работать с ложными срабатываниями, и как сделать, чтобы их не было. Проект Newton Game Dynamics показался мне подходящим для этого кандидатом.
Читать полностью »
Бесплатная версия Embarcadero AppMethod доступна для скачивания
2014-06-20 в 13:30, admin, рубрики: android, c++, Delphi, инструменты разработки, метки: android, c++, инструменты разработкиНа прошлой неделе, на конференции Android разработчиков AnDevCon, Embarcadero анонсировала бесплатную версию AppMethod — своей новой мультиплатформенной среды разработки, поддерживающей PC, Mac, iOS и Android. И вот вчера (19 июня) очередная версия AppMethod была официально представлена.
Получить ссылку на скачивание, а также ознакомиться с ценами и FAQ можно на официальном сайте продукта. Следует отметить, что данный продукт — коммерческий, и лицензируется по подписке. Однако, разработку для Android телефонов, как и анонсировалось, можно будет вести бесплатно. Читать полностью »
Создание аудиоплагинов, часть 8
2014-06-19 в 11:15, admin, рубрики: c++, dsp, Martin Finke, Reaper, Visual Studio, VST, xcode, интерфейсы, перевод, Работа со звуком, метки: c++, dsp, Martin Finke, Reaper, Visual Studio, VST, xcode, АУ, перевод Все посты серии:
Часть 1. Введение и настройка
Часть 2. Изучение кода
Часть 3. VST и AU
Часть 4. Цифровой дисторшн
Часть 5. Пресеты и GUI
Часть 6. Синтез сигналов
Часть 7. Получение MIDI сообщений
Часть 8. Виртуальная клавиатура
Настройка виртуальной клавиатуры в REAPER не так очевидна, к тому же хост пользователя может вообще не иметь такой функциональности. Давайте добавим свою маленькую экранную клавиатуру в GUI.
Читать полностью »
Quaternion Encryption Scheme (QES) на FPGA, XeonPhi, GPU
2014-06-19 в 8:17, admin, рубрики: c++, fpga, nvidia tesla, opencl, Алгоритмы, высокая производительность, ПЛИС, сопроцессор, шифрование, метки: fpga, nvidia tesla, opencl, ПЛИС, сопроцессор, шифрование
Привет!
Шифрование данных с помощью кватернионов выполнялось на FPGA DE5-NET, XeonPhi 7120P, GPU Tesla k20.
У всех троих приблизительно одинаковая пиковая производительность, но имеется разница в энергопотреблении.
Дабы не нагромождать статью лишней информацией предлагаю вам ознакомиться с краткой информацией о том что такое кватернион и матрица поворота в соответствующих статьях википедии.
Каким же образом можно зашифровать и расшифровать данные с помощью кватернионов? Довольно просто!
Для начала возьмем кватернион: q = w + x*i + y*j + z*k и составим на его основе матрицу поворота, которую назовем, например P(q).
Прим. картинка ниже из википедии и матрица там названа Q.
Шпаргалка по HTTP-библиотекам для С++
2014-06-18 в 7:54, admin, рубрики: c++, http, Блог компании Инфопульс Украина, Программирование, метки: c++, httpК сожалению, в стандартной библиотеке языка С++ нет никаких средств для работы с протоколом HTTP. Возможно, в будущем появятся, но на данный момент каждый раз при необходимости дёрнуть какой-нибудь REST-сервис, пропарсить веб-страничку, написать простенького бота или краулера приходится задаваться вопросами «А какую же библиотеку взять, так чтобы побыстрее и попроще?». Иногда проект уже использует какой-то фреймворк (а иногда даже несколько) и тогда приходится вспоминать «А как же сделать HTTP-запрос имеющимися средствами?». Чтобы не путаться я решил написать для себя шпаргалку с примерами HTTP-запросов на С++ с применением разных библиотек. А самое удобное место для хранения подобных шпаргалок — Хабр: и сам не потеряешь, и другим может пригодиться.
Будут рассмотрены:
- WinInet
- Casablanca
- Qt
- POCO
- wxWidgets
- Boost.Asio
- libcurl
- neon
- .NET (С++/CLI)
- IXMLHTTPRequest
- HappyHttp
- cpp-netlib
Создание аудиоплагинов, часть 7
2014-06-17 в 20:19, admin, рубрики: c++, dsp, Martin Finke, Reaper, Visual Studio, VST, xcode, перевод, Работа со звуком, метки: c++, dsp, Martin Finke, Reaper, Visual Studio, VST, xcode, АУ, перевод Все посты серии:
Часть 1. Введение и настройка
Часть 2. Изучение кода
Часть 3. VST и AU
Часть 4. Цифровой дисторшн
Часть 5. Пресеты и GUI
Часть 6. Синтез сигналов
Часть 7. Получение MIDI сообщений
Пока что мы генерировали только постоянную звуковую волну, которая просто звучала на заданной частоте. Давайте посмотрим, как можно реагировать на MIDI сообщения, включать и выключать генерацию волны на нужной частоте в зависимости от получаемой ноты.
Читать полностью »
Создание аудиоплагинов, часть 6
2014-06-16 в 19:01, admin, рубрики: c++, dsp, Martin Finke, Reaper, Visual Studio, VST, xcode, перевод, Работа со звуком, метки: c++, dsp, Martin Finke, Reaper, Visual Studio, VST, xcode, АУ, перевод Все посты серии:
Часть 1. Введение и настройка
Часть 2. Изучение кода
Часть 3. VST и AU
Часть 4. Цифровой дисторшн
Часть 5. Пресеты и GUI
Часть 6. Синтез сигналов
После улучшений интерфейса пора бы заняться и программированием. В этом посте мы сгенерируем классические синус, пилу, треугольник и меандр.