Так получилось, что недавно на работе мне понадобилось портировать старенькое нативное приложение под Android. Приложение написано в основном на C/C++. Захотелось мне это проделать грамотно и цивилизованно. Собственно об этом под катом
Читать полностью »
Метка «С++» - 6
Самопальная привязка С++ классов к JVM через JNI
2013-01-08 в 21:57, admin, рубрики: android, c++, java, jni, jvm, С++, метки: jni, jvm, С++Создаем расширение (extension) Visual Studio для генерирования C++ директивы #define в header-файле
2013-01-07 в 13:32, admin, рубрики: c++, Visual Studio, visual studio 2010, С++, метки: visual studio 2010, С++ Добрый день.
Будем делать расширение Visual Studio, которое встраивает в контекстное меню редактора поле «Create C++ Header #define», при клике на которое генерируется уникальная директива #define (директива позволяет включать header только один раз).
В конечном счете выглядеть это будет следующим образом:
На самом деле обычно это автоматизируется с помощью макросов самой студии ( и вариантов макросов в сети много), но мне приятнее использовать контекстное меню, тем более что создание самого расширения — это дело простое, всю работу сделает VSPackage Builder, нам останется лишь вписать несколько строчек кода в обработчик нажатия элемента меню.
Что такое TCHAR, WCHAR, LPSTR, LPWSTR,LPCTSTR (итд)
2012-12-31 в 16:46, admin, рубрики: ansi, api, c++, Unicode, visual c++, windows api, переводы, С++, строки, метки: ansi, Unicode, visual c++, windows api, С++, строки
Многие C++ программисты, пишущие под Windows часто путаются над этими странными идентификаторами как TCHAR, LPCTSTR. В этой статье я попытаюсь наилучшим способом расставить все точки над И. И рассеять туман сомнений.
В свое время я потратил много времени копаясь в исходниках и не понимал что значат эти загадочные TCHAR, WCHAR, LPSTR, LPWSTR,LPCTSTR.
Недавно нашел очень грамотную статью и представляю ее качественный перевод.
Статья рекомендуется тем кто бессонными ночами копошиться в кодах С++.
Вам интересно ??
Прошу под кат!!!
Читать полностью »
Использование try — catch для отладки
2012-12-20 в 19:30, admin, рубрики: c++, исключения, ооп, С++, метки: исключения, С++ Итак, вы написали программу, запустили в отладчике — все хорошо, все нормально. Поставили в рабочий процесс — валится. Причем, в самых неожиданных местах.
Что делать?
Начинаем думать. Везде ставить try-catch… вычислительный блок будет здорово тормозить. Значит, надо сделать отладочную версию. Значит, вводим
#define __TRY__DEBUG__
Читать полностью »
Дружим Python 3 с MS Visual C++. Строим мост в Boost.Python с автоматической перекодировкой
2012-12-09 в 3:16, admin, рубрики: boost, boost.python, c++, c++11, microsoft, python, python 3.3, python3, visual c++, Visual Studio, visual studio 2012, windows, Программирование, С++, метки: boost, boost.python, c++11, microsoft, python, python 3.3, python3, visual c++, Visual Studio, visual studio 2012, windows, С++Всем доброго {daytime}!
Сегодня пришла пора рассказать вам о фундаментальной проблеме перекодировки при взаимодействии проекта собранного на MS Visual C++ на платформе Windows и наиболее приятной скриптовой обвязки для языка C++, благодаря библиотеке Boost.Python, собственно написанной для языка Python.
Вы ведь хотите использовать для вашего приложения на C++ под ОС Windows хорошую скриптовую обвязку на последней версии Python 3.x, либо вы хотите использовать для вашего приложения на Python максимально ускоренный участок кода вашего модуля, переписанный на C++. В обоих случаях, если вы знаете оба языка как минимум хорошо, вам стоит это прочитать.
Читать полностью »
Интерполяция + (линейная | логарифмическая) шкала + С++
2012-11-16 в 11:00, admin, рубрики: интерполяция, С++, метки: интерполяция, С++Понадобилось мне как-то сделать интерфейс для загрузки в микроконтроллер график функции «сопротивление -> температура» (график решили задавать по нескольким точкам, а потом их интерполировать). По ходу дела выяснилось, что график будет оч-чень нелинейным (180 Ом -> 100o, 6 000 Ом -> 0o, 30 000 Ом -> -30o). Поэтому пришлось мне погрузиться в тему логарифмических шкал… и сразу вынырнуть, так как я не нашел того, что мне нужно. А нужно-то мне было всего лишь понять математику (и реализацию на С++) таких дел. ЧуднО — вроде такая нужная тема, а не расписано! Ну да ладно — мозги заскрипели и вспомнили высшую математику из университета, и программа была написана. Решил описать я свои мытарства тут — может, кому пригодится.
В этой статье я распишу теорию (а также базовые виртуальные классы), в следующей возьмусь за конкретные реализации средствами Qt.
Осторожно: в тексте много графики!
Читать полностью »
Простой хромакей по цветовой компоненте RGB
2012-11-13 в 10:58, admin, рубрики: Песочница, С++, метки: С++Все чаще и чаще нам на глаза попадается использование хромакея в самых неожиданных местах. Долго свербила мысль попробовать реализовать что-то свое. Читать полностью »
О тонкостях повышения performance на С++, или как делать не надо
2012-11-09 в 14:40, admin, рубрики: c++, mysql, performance optimization, повышение производительности, Программирование, С++, метки: mysql, performance optimization, повышение производительности, С++
Однажды, много лет назад, пришел ко мне клиент, и слезно умолял поручил разобраться в одном чудесном проекте, и повысить скорость работы.
Вкратце, задача была такой — есть некий робот на С++, обдирающий HTML страницы, и собранное складывающий в БД (MySQL). С массой функционала и вебом на LAMP — но это к повествованию отношения не имеет.
Предыдущая команда умудрилась на 4-ядерном Xeon в облаке получить фантастическую скорость сбора аж в 2 страницы в секунду, при 100% утилизации CPU как сборщика, так и БД на отдельном таком же сервере.
Самые востребованные языки программирования
2012-10-31 в 8:00, admin, рубрики: 1С, human resources, java, python, tiobe, Блог компании HeadHunter, поисковая выдача, Программирование, программисты, С++, языки программирования, метки: 1с, java, python, tiobe, поисковая выдача, программисты, С++, языки программирования Каждый месяц работодатели создают на hh.ru примерно 15 000 000 поисковых запросов. Мы проанализировали потребности компаний в конкретных программистах и составили рейтинг самых популярных языков программирования в запросах работодателей.
Итак, первая десятка самых востребованных программистов в Москве выглядит так:
К десятке были очень близки axapta, flash и ruby.
Читать полностью »
Автоматизируем сбор информации о падениях программы
2012-10-26 в 10:18, admin, рубрики: c++, баги, исключение, краш, отладка, ошибки, разработка, С++, тестирование, метки: баги, исключение, краш, отладка, ошибки, разработка, С++, тестирование
Перефразируя известную поговорку: «не делает багов тот, кто ничего не кодирует». Каждый разработчик умеет и любит делать баги, но не любит потом их исправлять. Ошибки в коде в одном случае приводят просто к некорректной обработке данных программой, а в другом — к исключениям (вылетам, падениям, крашам). В этом посте я расскажу о том, как можно автоматизировать сбор данных о краше программы, чтобы сильно облегчить себе жизнь при разборе и устранении ошибок.Читать полностью »