Так получается, что сейчас тружусь над планировщиком для MySQL соединений. И тут недавно пришлось покапаться в документации/блогах и т.д. И вот решил поделиться с сообществом как реализовать асинхронные запросы к MySQL серверу на С++ используя API и библиотеку libmysqlclient.
Рубрика «c++» - 258
Асинхронные запросы к MySQL на API (libmysqlclient)
2012-05-30 в 17:51, admin, рубрики: c/c++, c++, mysql, метки: c/c++, mysqlСравнение скорости работы range-based for, foreach(Qt) и кое-чего из STL при подсчете суммы элементов контейнеров
2012-05-30 в 16:57, admin, рубрики: c++, qt, с++11, метки: Qt, с++11Я участвую в разработке проекта на C++ с использованием фреймворка Qt. В нашем проекте во многих местах используются контейнеры Qt и для обхода элементов часто применяется макрос foreach. В один прекрасный момент мне стало интересно, насколько оправдано применение этого макроса. Кроме того, очень хотелось «пощупать» c++11 в действии. И вот что мне удалось на текущий момент выяснить...Читать полностью »
Про QStringLiteral
2012-05-29 в 11:11, admin, рубрики: c++, c++11, QLatin1String, QStringLiteral, Qt Software, qt5QStringLiteral — это новый макрос, введенный в Qt 5, для создания объектов QString из строковых литералов. (Строковые литералы — это строки внутри кавычек в исходном коде). В этой статье я объясню, что там внутри и как они реализованы.
Выводы
Разрешите начать с информации о том, когда нужно пользоваться макросом. Если есть необходимость инициализировать объект QString из строкового литерала в Qt5, то стоит делать так:
- В большинстве случаев QStringLiteral(«foo») если он действительно будет преобразован в QString.
- QLatin1String(«foo») если он будет использоваться в перегруженных QLatin1String методах. (например operator==, operator+, startWith, replace, ...)
Я привел выводы в самом начале статьи для тех, кому не интересны технические детали.
Если интересно узнать, как работает QStringLiteral, читайте дальше.
Читать полностью »
Qt/Objective-C++11 или сборка Qt-проекта с помощью GCC-4.7 и Clang
2012-05-28 в 15:32, admin, рубрики: blocks, c++, clang, gcc, mac os x, macosx, programming, qt, Qt Software, Программирование, метки: blocks, c++, clang, gcc, macosx, objective-c, programming, QtВсем доброго хабрадня!
Сегодня я расскажу уважаемым хабражителям об очередном извращении — о сборке проекта, написанного на Qt, под Mac OS X компилятором GCC-4.7.0 с примесью Clang'а (про шланг — в конце статьи, там станет понятно, зачем ещё и его приплетать будем).
Для чего нам GCC 4.7? Ну, например, чтобы использовать все те крутые фичи из стандарта C++11. Разве этого мало? Кроме поддержки нового стандарта, в нём очень много улучшений по сравнению с идущим в комплекте с Xcode GCC 4.2 (хотя он и оказывается на поверку i686-apple-darwin11-llvm-g++-4.2), так что смысл в переходе на 4.7 явно имеется. Но и проблемы присутствуют, о чём ниже.
Мы можем предположить, что нам потребуются некие фичи из Cocoa
, а значит, нам потребуется компилятор Objcetive-C, а ещё лучше — Objective-C++, чтобы, например, интегрировать наше Qt-приложение в окружение Mac OS X.
Читать полностью »
Открытое письмо редакции «Журнал Хакер»
2012-05-27 в 13:55, admin, рубрики: c++, журнал хакер, Медиа, открытое письмо, Программирование, метки: журнал хакер, открытое письмо Дорогая редакция журнала «Хакер», я много думал над этим письмом, стоит ли ее писать, может я в чем-то всетаки ошибаюсь. Но, в один прекрасный день (так лучше звучит) я принял решение (ну это уже понятно).
Письмо можно охарактеризовать одним предложением:
«Хватит нести чепуху, проверяйте наконец ваши чертовые статьи на предмет ошибок и хватит тупых скриншотов типа 'пример кода чего-то' !!».
А теперь по порядку, во-первых, я пишу «открытое» письмо, чтобы другие читатели журнала смогли выразить их точку зрения через комментарии к этому посту и если я просто молодой ПРшик, то у всех будет возможность сказать об этом лично мне, во-вторых — я делаю отличную работу для вас — высказываю и собираю конструктивную критику. (Чтобы быть уверенным, что меня услышат, я на всякий случай упомяну следующих пользователей: XakepRU, step_na_habre, gorl).
Читать полностью »
Цитаты о языках программирования
2012-05-27 в 10:07, admin, рубрики: algol, bash, c++, fortran, java, perl, php, История ИТ, Программирование, цитаты, юмор, языки программированияЧто учёные, писатели и программисты думают о популярных языках программирования.
Все языки
«Есть два подхода к программированию. Первый — сделать программу настолько простой, что в ней очевидно нет ошибок. А второй — сделать её настолько сложной, что в ней нет очевидных ошибок.»
Tony Hoare. Профессор, занимался реализацией Алгол 60, сейчас исследователь в Microsoft Research.
Algol 60 (позже повлиявший на C)
«Я не мог устоять перед искушением добавить в язык нулевой указатель (null), просто потому, что его так легко было реализовать. Это привело к бессчётному множеству ошибок, уязвимостей и сбоев, которые нанесли ущерб, наверное, в миллиард долларов за последние сорок лет.»
Tony Hoare.
Разрабатываем модуль PHP на C++. Часть 1: экскурс в мир Zend Engine 2
2012-05-26 в 12:08, admin, рубрики: c++, Extensions, php, zend engine, метки: c++, Extensions, PHP, zend engineДоброго времени суток, уважаемое Харбасообщество!
Под катом изложена некоторая информация касательно написания расширений для PHP c использованием C++, почерпнутая мной из различных источников (по большей части англоязычных) и ковыряния исходников Zend Engine 2 во время разработки одного модуля для собственных нужд. Так как объем ее достаточно велик, далее я старался быть краток.
Итак, в этой части:
А вот до C++ в этой части мы так и не доберемся… =)
Маленький дисклеймер: содержимое статьи не есть истина в первой инстанции, не основывается на официальной документации (а есть ли она?) и является моим субъективным взглядом на ZE 2. Тем не менее, в свое время я был бы рад найти нечто подобное на просторах Рунета, дабы сэкономить время на начальных этапах разработки.
Читать полностью »
War Craft III / Dota кратко о создании чита
2012-05-24 в 9:17, admin, рубрики: c++, cheats, game development, warcraft 3, игры, метки: c++, cheats, warcraft 3, игры Добрый день. Прошлая заметка о принципе создания чита, заинтересовала многих. Руководствуясь этим я предположил, что кому-то может оказаться интересным другой способ создания подобных программ. Перед тем как начать скажу: «Все ниже описанное Вы, если решите применить на деле, используете на свой страх и риск».
Для примера будем использовать стандартную «рыбу» для подобных программ/трейнеров. Весь принцип работы заключается в нахождении нужных нам адресов/смещений в память программы и изменении их значений на свои.
И так, для начала нам понадобятся:
ArtMoney/TSearch — для поиска значений.
ollydbg — дебагер для поиска адресов.
Посмотреть ролик:
Kinect for Windows SDK научился работать с лицами
2012-05-23 в 20:07, admin, рубрики: c++, Kinect for Windows, Microsoft Kinect, разработка, метки: c++, Kinect for Windows
21 мая вышла версия Kinect for Windows SDK и Runtime 1.5, где появился ряд новых инструментов:
- Программа Kinect Studio для записи и последующего воспроизведения движений пользователя.
- Справочник Human Interface Guidelines (HIG) с примерами правильных интерфейсов.
- Face Tracking SDK: обработка 3D-сетки лица в реальном времени: позиция головы, положение бровей, форма рта и т.д. Так что теперь ваша программа под Windows может реагировать на выражение лица пользователя.
Type-rich Programming
2012-05-22 в 17:51, admin, рубрики: best practice, c++, c++11, style guide, Программирование, Совершенный код, метки: best practice, c++11, style guide Посмотрев конференцию GoingNative 2012 решил попытаться описать «best practice» для написания программ в стиле C++11. Планируется цикл статей, кому интересно, auto articlesIterator = articles.begin();
Читать полностью »