Метка «c++» - 87

Привет!
Пару дней назад вышла новая версия интернет-комбайнаклиента LeechCraft — 0.5.0. На Хабре несколько лет назад уже пролетала новость об этой программе, а теперь пришло время рассказать о ней снова, ибо с тех пор изменилось действительно много чего.
Если вкратце, LeechCraft — модульное кроссплатформенное приложение «обо всем» на C++ и Qt, сочетающее в себе браузер, RSS-читалку, торрент-клиент, а теперь еще и IM. Модульность приложения означает не просто поддержку этих самих модулей, а то, что, во-первых, каждая функция, от самых крупных (браузер, читалка, ядро IM) до самых мелких (блокировка рекламы, поддержка стилей в IM, антиспам)Читать полностью »

.NET / Создание окна выделения области для скриншотера
Ранее, читатель AlexanderG, выкладывал программку, которая в один клик делает скриншот всего экрана и автоматически выгружает его на хостинг. Все очень круто, быстро и удобно, но на мой взгляд, не хватает одного функционала — выделения нужной области, потому я решил дописать программу.
В этой статье, я попробую описать создание своей полноценной формы, вместо унылой стандартной. В моем случаи, мне нужна была красивая прозрачная панель выделения области экрана для создания скриншота, которую можно перемещать и менять ее размеры. Это моя первая программа на c#, потому статья ориентирована на новичков.
Создаем свою форму

Читать полностью »

.NET / Создание своей формы
Ранее, читатель AlexanderG, выкладывал программку, которая в один клик делает скриншот всего экрана и автоматически выгружает его на хостинг. Все очень круто, быстро и удобно, но на мой взгляд, не хватает одного функционала — выделения нужной области, потому я решил дописать программу.
В этой статье, я попробую описать создание своей полноценной формы, вместо унылой стандартной. В моем случаи, мне нужна была красивая прозрачная панель выделения области экрана для создания скриншота, которую можно перемещать и менять ее размеры. Это моя первая программа на c#, потому статья ориентирована на новичков.
Создаем свою форму

Читать полностью »

Известно, что для того что бы создать extern константу (например типа NSString *) необходимо сделать два шага:
— в .h файле объявить константуextern NSString *const kMyConst;
— в .m файле присвоить ей значениеNSString *const kMyConst = @"kMyConst";
То, что приходится два раза писать примерно одно и тоже это нормально, если у вас немного подобных констант.
Когда я столкнулся с необходимостью объявления около 30 констант, я решил придумать что нибудь более красивое. По итогу вышла трех-файловая реализация.Constants.h#define def_key(name) extern NSString *const name
#define def_int(name, value) extern int const name
#define def_type(type, name, value) extern type const name
#include "ConstantsDefs.h"Constants.m#import "Constants.h"
Читать полностью »

C++ / [Из песочницы] DynLib: библиотека для создания и работы с DLL
Библиотека DynLib предоставляет удобные средства для разработчиков, использующих межмодульное взаимодействие (EXEDLL, DLLDLL) в своих проектах, и значительно сокращает время и количество кода.
DynLib была написана для внутреннего использования одним из наших сотрудников SergX и стала неотъемлемым инструментом разработки. Под катом делимся результатами.
Недостатки традиционного подхода к реализации DLL

К основным недостаткам традиционного подхода (реализации) можно отнести:отсутствие возможности использовать пространства имен

большое количество служебного кода, необходимого:при реализацииЧитать полностью »

Для любой задачи можно придумать тест, который даст необходимый результат. ©
Но в этот раз никаких специальных задач не было, а просто захотелось узнать насколько быстр GHC и вот что получилось.
Дано: массив 16k целых чисел
Тест: 1000 раз quicksort
C (own) 0m2.528s x 1.00
C (qsort) 0m3.282s x 1.30
C++ (std) 0m3.250s x 1.28

Haskell 0m3.867s x 1.53

PHP 1m18.73s x 30
Python 1m38.55s x 38
Perl 2m53.69s x 67

В последних трех тестах не стояла цель получить лучшие результаты, они оставлены для общего маштаба.Исходники: as is, без специальной тест системы, использовался time (man 1 time)Железо: MacBook Pro Mid 2010 / 2.4 GHz Intel Core i5Версии:
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)
Читать полностью »

Наткнулся на сайте испанского сообщества С-программистов на интересную интерпретация молитвы «Отче наш» за авторством некоего Docma. Я позволил себе вольность сделать перевод на великий и могучий.
В статье на Википедии приводятся два варианта молитвы: от Матфея и от Луки. В переводе я использовал элементы обоих для лучшего звучания.C наш, сущий в памяти!
да компилируется код Твой;
да приидет царствие Софта Твоего;
да будут действительны указатели Твои
и в ОЗУ, как на жестком диске;
массив наш насущный подавай нам на каждый день;
и прости нам варнинги наши,
как и мы избавляемся отЧитать полностью »

В этой статье речь пойдет о разработке простейшего плеера с использованием библиотек из проекта FFmpeg.
Я не нашел на хабре статей на данную тематику, поэтому решил восполнить этот пробел.
Декодирование видео будет осуществляться с помощью библиотек FFmpeg, отображение — с помощью SDL.
Введение

С помощью FFmpeg можно выполнять большое количество задач по обработке видео: кодирование и декодирование, мультиплексирование и демультиплексирование. Это значительно облегчает разработку мультимедиа приложений.
Одна из основных проблем, как и у большинства open source проектов, этоЧитать полностью »

Сегодня мы будет обсуждать технические аспекты и реализацию задач на Python и C/C++, которыми нас будет закидывать инженер из Google. Начнём с самых тривиальных проблем с последующим нарастанием сложности. Параллельно обратим внимание о чём стоит упомянуть во время интервью и где не попасть в ловушку.
Если Вы видите способ улучшить алгоритм или код приведённый в данной статье — милости прошу отписаться в комментариях. Я хочу научиться чему-то новому на этой публикации тоже.
Телефонное техническое интервью — весьма оригинально само по себе. В тех компаниях, где мне посчастливилось его проходить, обычно мы говорили о моихЧитать полностью »

C#.NET предлагает множество способов сравнить объекты, как экземпляры классов, так и структур. Способов так много, что без упорядочения этих способов и понимания их грамотного использования и имплементации (при наличии возможности переопределения), в голове, неминуемо, образуется каша.
Итак, класс System.Object предлагает следующие методы:

public static bool ReferenceEquals(object objA, object objB)
{
return objA == objB;
}

public static bool Equals(object objA, object objB)
{
return objA == objB || (objA != null && objB != null && objA.Equals(objB));
}

public virtual bool Equals(object obj)
{
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js