Недавно начал работать над созданием плагина для AutoCAD 2009. Пишу на C#. Использую Visual Studio 2012 Ultimate. Так как включение отладки кода при написании плагинов под AutoCAD связано с определенными трудностями и соответственно тратой времени на поиск решения, я решил поделиться своим опытом и представить пошаговую инструкцию, каким образом включить отладку в Visual Studio.
Читать полностью »
Метка «c++» - 53
Отладка кода C# в AutoCAD используя Visual Studio 2012
2012-12-28 в 17:30, admin, рубрики: .net, autocad, cad, Visual Studio, отладка, Песочница, метки: .net, Autocad, c++, cad, Visual Studio, отладкаРазработка патчера к игре
2012-12-26 в 21:18, admin, рубрики: .net, diff, game development, patcher, Rsync, метки: .net, c++, diff, game development, patcher, RsyncПосле написания первой игры перед нами встала задача, о которой мы даже не задумывались ранее. Это разработка патчера к игре. Для нашего патчера мы определили следующие требования:
- Поддержка юнити игр
- Дружелюбность к пользователю
- Отображение игровых новостей
- Универсальность для всех игр разработанных нашей студией
- Гибкость настройки
- И самое важное: умение делать небольшие патчи для больших файлов
Ссылка на исходники патчера в конце статьи.
Читать полностью »
Чистый С++: Как правильно разрушать
2012-12-26 в 10:50, admin, рубрики: c++, Блог компании Intel, общение, Программирование, учебник, метки: c++, общение, учебник
Добрый день, Серега вновь добрался до клавиатуры и рассуждает о C++. Сегодня поговорим о том, зачем еще в C++ нужны классы, как работают деструкторы и на какие еще грабли можно наступить, если смешать два языка. Под катом ничего нового и выдающегося для тех, кто знает C++ еще со времен ДОСа. Если же вы еще только изучаете этот язык — добро пожаловать.
Читать полностью »
Бенчмарк HTML парсеров
2012-12-26 в 9:25, admin, рубрики: benchmark, dom, erlang, html, lxml, nodejs, parser, PyPy, python, xpath, высокая производительность, Программирование, метки: benchmark, c++, dom, erlang, html, lxml, nodejs, parser, PyPy, python, xpathПереписывал на работе кусок одного сервиса с Python на Erlang. Сам сервис занимается тем, что скачивает по HTTP значительное количество однотипных HTML страниц и извлекает из них некоторую информацию. Основная CPU нагрузка сервиса приходится на парсинг HTML в DOM дерево.
Сперва захотелось сравнить производительность Erlang парсера mochiweb_html с используемым из Python lxml.etree.HTML(). Провел простейший бенчмарк, нужные выводы сделал, а потом подумал что неплохо было бы добавить в бенчмарк ещё парочку-другую парсеров и платформ, оформить покрасивее, опубликовать код и написать статью.
На данный момент успел написать бенчмарки на Erlang, Python, PyPy, NodeJS и С в следующих комбинациях:
- Erlang — mochiweb_html
- CPython — lxml.etree.HTML
- CPython — BeautifulSoup 3
- CPython — BeautifulSoup 4
- CPython — html5lib
- PyPi — BeautifulSoup 3
- PyPi — BeautifulSoup 4
- PyPi — html5lib
- Node.JS — cheerio
- Node.JS — htmlparser
- Node.JS — jsdom
- C — libxml2 (скорее для справки)
В тесте сравниваются скорость обработки N итераций парсера и пиковое потребление памяти.
Интрига: кто быстрее — Python или PyPy? Как сказывается иммутабельность Erlang на скорости парсинга и потреблении памяти? Насколько быстра V8 NodeJS? И как на всё это смотрит код на чистом C.
Читать полностью »
Слабые ссылки в различных языках программирования
2012-12-25 в 14:11, admin, рубрики: c++, haskell, java, perl, python, ruby, Программирование, метки: c++, haskell, java, perl, python, ruby, Программирование В языках с автоматическим управлением памятью сборщик мусора удаляет объекты, когда они перестают быть доступными по ссылкам. Обычно это именно то, что нужно: объект существует, пока есть возможность к нему обратиться.
Иногда такое поведение не подходит. Например, программе понадобилось хранить некоторую вспомогательную информацию об экземплярах некоторого класса, но у вас нет возможности добавить в этот класс своё поле. В этом случае можно создать отображение, в котором ключом будет объект, а значением — вспомогательная информация.
Вот тут-то и начинаются проблемы. Поскольку отображение хранит ссылки на ключи, те объекты, к которым была привязана вспомогательная информация, перестают освобождаться из памяти. Если программа в процессе своей работы создаёт много объектов, память рано или поздно заканчивается.Читать полностью »
Разбираемся с разработкой Windows 8 приложений на XAML/С#, реализуя простой RSS Reader. Ч.2
2012-12-25 в 10:24, admin, рубрики: windows, Windows 8, XAML, Блог компании Microsoft, разработка, разработка приложений, метки: c++, Windows 8, XAML, разработка приложений
Продолжаем разрабатывать простой RSS Reader. Начало было положено в статье Разбираемся с разработкой Windows 8 приложений на XAML/С#, реализуя простой RSS Reader. Ч.1, где мы создали проект получили данные RSS и начали делать красиво. В этой части мы добавим красоты и функциональности в нашу читалку.Читать полностью »
Отображение генерируемых «на лету» html страниц без сохранения в буфер обмена или файловую систему
2012-12-25 в 9:00, admin, рубрики: .net, отображение html-страниц, разработка, метки: c++, отображение html-страницЧасто при разработке перед программистом встаёт вопрос об отображении результатов работы пользователю в удобном для него виде. Благо вариантов реализации вывода информации несметное множество. Так, одним из них является web-страница, как очень гибкое решение, позволяющее оформить данные в любом виде.
Однако, временами, простая на первый взгляд проблема усложняется какими-то ограничениями. К примеру, из-за недостатка прав доступа может возникнуть ситуация невозможности использования файловой системы. Иными словами, результаты нельзя будет сохранять в файл. А использование буфера обмена может повлечь за собой уничтожение важной информации хранящейся в нём.
О том, как показать пользователю html страницу, не имеющую локального представления под катом.
Читать полностью »
Особенности обработки исключений в Windows
2012-12-24 в 12:23, admin, рубрики: c++, исключения, ооп, Проектирование и рефакторинг, метки: c++, try-catch, исключенияПрочитав недавний топик "Использование try — catch для отладки" решил все таки в качестве дополнения поделиться и своим опытом.
В этой статье предлагаю рассмотреть получение callstack’а места, где было брошено исключение в случае работы со
структурными исключениями (MS Windows). В детали работы исключений вдаваться не будем, т.к. это тянет на отдельный цикл статей (для интересующихся рекомендую Рихтера, MSDN и wasm.ru). Конечно, есть много уже готовых проектов для генерации minidump
’ов (например CrashRpt или google-breakpad), так что эта статья носит больше образовательный характер.
Что делать с полученным стеком вызовов — решать вам. Можно смотреть отладчиком, можно записать в файл и смотреть сторонней программой (для этого не забудьте записать список загруженных модулей с их адресами, а так же вам понадобятся отладочные символы).
Читать полностью »
Разбираемся с разработкой Windows 8 приложений на XAML/С#, реализуя простой RSS Reader. Ч.1
2012-12-24 в 10:08, admin, рубрики: windows, Windows 8, XAML, Блог компании Microsoft, разработка, разработка приложений, метки: c++, Windows 8, XAML, разработка приложений
После поста Введение в разработку WinRT-приложений на HTML/JavaScript. От шаблона к приложению с данными вы уже знаете как разрабатывать RSS читалку под Windows 8 с использованием HTML и JavaScript. Пришло время попробовать сделать примерно то же самое, но с использованием XAML/C#. Это первая часть, но мы уже в ней сделаем красиво!
Читать полностью »
Android: Написание многопоточных приложений с помощью Intel® Threading Building Blocks
2012-12-21 в 12:27, admin, рубрики: android, android development, c++, c++ библиотеки, c++11, intel tbb, intel threading building blocks, tbb, Блог компании Intel, параллельное программирование, Разработка под android, метки: android, android development, c++, c++ библиотеки, c++11, intel tbb, intel threading building blocks, tbb Совсем недавно мы рассматривали написание многопоточных приложений для магазина Windows с помощью Intel® Threading Building Blocks(Intel® TBB). Там утверждается, что использование кроссплатформенной библиотеки TBB позволяет легко переносить вычислительную часть на другие платформы. Android как раз сгодится для хорошего примера одной из «других платформ», подробности под катом.
Читать полностью »