войти зарегистрироваться

C++DynLib: библиотека для создания и работы с DLL из песочницы

image Библиотека DynLib предоставляет удобные средства для разработчиков, использующих межмодульное взаимодействие (EXE<->DLL, DLL<->DLL) в своих проектах, и значительно сокращает время и количество кода.

DynLib была написана для внутреннего использования одним из наших сотрудников SergX и стала неотъемлемым инструментом разработки. Под катом делимся результатами.

C++Перевод статьи «Pimp my Pimpl», часть 2 из песочницы

В первой части статьи, переведенной уважаемым skb7, было рассмотрено идиому Pimpl (pointer to implementation, указатель на реализацию), ее назначение и преимущества. Во второй части будет рассмотрено проблемы, возникающие при использовании этой идиомы, а также предложены некоторые варианты их решения.

C++Не зная брода, не лезь в воду. Часть вторая

Ужасный printf
В этот раз я хочу поговорить о функции printf. Все наслышаны об уязвимостях в программах, и что функции наподобие printf объявлены вне закона. Но одно дело знать, что лучше не использовать эти функции. А совсем другое — понять почему. В этой статье я опишу две классических уязвимости программ, связанных с printf. Хакером после этого вы не станете, но, возможно, по-новому взгляните на свой код. Вдруг, вы реализуете аналогичные уязвимые функции, даже не подозревая об этом.

СТОП. Подожди читатель, не проходи мимо. Я знаю, что ты увидел слово printf. И уверен, что автор статьи сейчас расскажет банальную историю о том, что функция не контролирует типы передаваемых аргументов. Нет! Статья будет не про это, а именно про уязвимости. Заходи почитать.

C++Не зная брода, не лезь в воду. Часть первая

Не зная брода, не лезь в воду
Захотелось написать несколько небольших заметок о том, как программисты на Си/Си++ играют с огнем, не подозревая об этом. Первая заметка будет про попытки явно вызвать конструктор.

Персональные блоги Перебираем двигатель через выхлопную трубу, или как получить нормальное клавиатурное управление в FIFA 12

Как это случилось


In the long hidden past
Was the world just like ours
Once beautiful, but every flower dies...

— All Mankind, «Break the spell»

Завязка истории тривиальна. Давным-давно, в далёкой-далёкой галактике была отличная игра под названием «Fifa». Она бы таковой и оставалась, если бы св нехорошие люди из ЕА в 2010м году не возжелали окончательно убить клавиатурное управление во имя геймпадов.
Я же решил нести возмездие во имя луны вернуть нормальное клавиатурное управление обратно. Хроники борьбы бобра с ослом можно посмотреть под катом.

Обработка изображенийViola Jones на собственной шкуре, часть 1. Настройка проекта под OpenCV

Привет, друзья мои! Дорогие Хабраюзеры и Хабрачитатели, предлагаю Вам окунуться в дебри разработки программы распознавания эмоций по материалам предыдущих моих статей.

C++Как уменьшить вероятность ошибки на этапе написания кода. Заметка N4

PVS-Studio vs Firefox
Это уже четвертая заметка, где я хочу поделиться полезными наблюдениями о паттернах ошибок и том, как можно с ними бороться. В этот раз я затрону такую тему, как обработка редких и аварийных ситуаций в программах. Рассматривая множество программ, я пришел к выводу, что код обработки ошибок в Си/Си++ программах — одно из самых ненадежных мест.
К чему приводят такие дефекты? Программа, вместо того, чтобы выдать сообщение «файл X не найден», падает и заставляет пользователя гадать, что он не так делает. Программа для работы с базой данных выводит невразумительное сообщение, вместо того, чтобы сообщить, что неверно заполнено одно из полей. Попробуем сразиться с этой разновидностью ошибок, которые досаждают нашим пользователям.

АлгоритмыРешение судоку с помощью веб-камеры в реальном времени

Предисловие



Это приложение может и не имело практической ценности, но опыта прибавило действительно много. Я бы хотел немного поразмышлять на тему компьютерного зрения. Эта область является одной из самых захватывающих в современных компьютерных вычислениях, и она очень сложна. Что легко и просто для человеческого мозга, то очень сложно для компьютера. Многие вещи до сих пор остаются невозможными с сегодняшним уровнем развития IT.
Программа написана с помощью низкоуровневого языка C++, потому что я действительно хотел понять, как же это все работает изнутри. Если вы тоже хотите начать изучение компьютерного зрения, то для этого пригодиться библиотека OpenCV. На CodeProject вы сможете найти несколько уроков по ней. Изображение с веб-камеры получается с помощью исходного кода Вадима Горбатенко (AviCap CodeProject).

C++Моё знакомство с С++, и при чем тут покер из песочницы

Решил я, студент, подрабатывающий фрилансером (в основном с РНР и HTML), немного расширить свои знания. Новым пространством для опытов для меня оказался С++. Ранее я ни разу не писал на компилируемых языках, и мысль о том, что понимание того, как это дело работает когда-нибудь мне все таки сгодится, не покидала мою голову. Так же мне не очень хотелось, чтобы первая моя «настоящая программа» была банальным текстом «Привет, мир!» в консоль. В то время я увлекся покером, играл с друзьями, в соцсетях. Что получилось в итоге — смотрите под катом.

C++C++ Variadic templates. Каррирование и частичное применение из песочницы

Доброго времени суток, уважаемое Хабрасообщество.
Недавно приходилось наблюдать дискуссию о каррировании и частичном применении. Суть этой полемики состояла в том, что лучше, для практических целей, иметь в языке программирования: встроенное частичное применение (например, как в Nemerle) или встроенное каррирование (как, например, в Haskell).