Как-то так вышло, что завелся у меня Windows 8 планшет. Не очень удачная модель — громоздкий как помощник, слабоватый как рабочая станция, но зато с стилусом, а самое важное, с 32-битной Win32 системой. Имея некое количество старых игр с распродаж GOG и Steam, я планировал как-нибудь засесть с этой таблеткой и переиграть все, что можно и нельзя. Но вот как-то не хватало времени и настроения, да еще и пробные запуски показали, что играть надо с мышью — курсор от тач-скрина убегал неизвестно куда, да и правый клик долгим нажатием был бы откровенно неудобным. Планшет пылился пол-года в углу до недавней раздачи Fallout от GOG и эта раздача подтолкнула меня к действию. Начинался вечер пятницы, планшет обзавелся USB мышью, а я устроился поудобнее на диване и начал по списку с самого верха — с Arcanum.
Через пол-часа создания персонажа (а ведь это дело очень важное и ответственное!) левая рука с трудом держала устройство, а запястье правой подозрительно начало тянуть, намекая о туннельном синдроме и прочих радостях неудобного хвата. Вспомнив нехорошим словом разработчиков некой эргономичной складывающейся мыши, я полез искать драйвера, патчи или еще хоть что-то, чтобы играть с тачскрина или хотя бы стилуса.
Патчей не нашлось. Единственный похожий драйвер был платным и без пробного режима. Вот в этот момент в голову и пришла идиотская (это я теперь понимаю!) мысль — «там ведь наверняка приходит какой-то WM_TOUCH и неправильно преобразуется в WM_MOUSEMOVE»… Забегая вперед, Арканум теперь у меня полностью управляется с тачскрина, правда, выходные закончились и больше хочется спать, чем играть. :)
Читать полностью »
Рубрика «visual c++» - 3
Arcanum и Fallout 2 с сенсорным экраном и стилусом в Windows 8
2013-12-15 в 20:14, admin, рубрики: visual c++, windows, Windows 8, игры, мышь, ненормальное программирование, старое железо, тач, тачскрин, метки: visual c++, Windows 8, игры, мышь, тач, тачскринКак мы пытаемся продать PVS-Studio в Google или очередные ошибки в Chromium
2013-12-02 в 6:16, admin, рубрики: c++, chromium, Google Chrome, pvs-studio, visual c++, Блог компании PVS-Studio, метки: c++, chromium, pvs-studio, visual c++
Когда мы пишем статьи про проверки каких-либо проектов с помощью PVS-Studio, то, как правило, у нас прибавляется клиентов. Тут все честно. Программисты не любят рекламу, но охотно отзываются на интересные материалы, которые легко проверить. Поэтому мы не рекламируем свой инструмент, а просто показываем, что он умеет. Однако, хотя мы проверили код Chromium уже три раза и трижды находили в нем ошибки, ордера с почтой в google.com в моей почте до сих пор нет. Поскольку мне интересно, что я делаю не так, и почему Google пока не использует PVS-Studio, я решил написать очередную статью.
Эта статья состоит из двух частей. В первой рассказывается об инфраструктуре проекта Chromium и нюансах интеграции, во второй приведены очередные найденные ошибки.
Кстати эта статья опубликована и на английском языке. Если захотите переслать ее англоязычным коллегам – пожалуйста, дайте им ссылку вот на это.
Хотите узнать, почему разрабатывать Chromium сложно и далеко не каждый инструмент для программистов может быть использован в проекте Chromium? Тогда читаем…
Выбор инструмента для расчётов с плавающей точкой — практические советы
2013-05-27 в 11:46, admin, рубрики: CUDA, gpgpu, maple, Matlab, visual basic, visual c++, высокая производительность, вычисления, оптимизация, Песочница, метки: CUDA, gpgpu, maple, Matlab, visual basic, visual c++, вычисления, оптимизацияСовременному программисту, математику или аналитику часто приходится проектировать, а то и создавать программно-аппаратные комплексы для работы с большими массивами числовых данных. Построение имитационных моделей, прогнозирование, расчёт статистики, управление оперативными процессами, финансовый анализ, обработка экспериментальных данных — везде требуется получить максимальную скорость вычислений на единицу затрат.
При этом большинство ну хотя бы минимально сложных и функциональных систем (во всяком случае, из тех, что встречались лично мне за 8 лет работы в банковской сфере), как правило, гетерогенны — состоят из множества функциональных блоков, как пёстро сшитое лоскутное одеяло, где каждый лоскуток выполняется разным приложением, зачастую даже на различных аппаратных платформах. Почему? Да просто это рационально и удобно. Каждый продукт хорош в своей области. Например, экономисты любят использовать Ms Excel для анализа и визуализации данных. Но мало кому в голову придёт использовать эту программу для обучения серьёзных искусственных нейросетей или решения дифференциальных уравнений в реальном времени — для этого зачастую приобретаются (или уже приобретены компанией) мощные универсальные пакеты, предлагающие гибкий API, или под заказ пишутся отдельные модули. Вот и получается, что результат считать выгоднее в том же Matlab, хранить в таблицах СУБД Oracle (запущенной на кластере Linux), а отчёт показывать пользователям в приложении Excel, работающем как OLE server на Windows. Причём связаны все эти компоненты одним из универсальных языков программирования.
Как выбрать оптимальную среду реализации для конкретной задачи?Читать полностью »
Что такое -1.#IND и -1.#J?
2013-03-01 в 8:45, admin, рубрики: ieee 754, visual c++, бесконечность, гики, История ИТ, округление, плавающая запятая, системное программирование
Любой опытный программист знает, что стандарт представления значений с плавающей точкой (IEEE 754) оставляет несколько зарезервированных значений, соответствующих не-числам (NaN, not-a-number). Стандартная библиотека Visual C печатает не-числа следующим образом:
Печатается | Означает |
---|---|
1.#INF |
Положительная бесконечность |
-1.#INF |
Отрицательная бесконечность |
1.#SNAN |
Положительное сигнальное не-число (signaling NaN) |
-1.#SNAN |
Отрицательное сигнальное не-число (signaling NaN) |
1.#QNAN |
Положительное несигнальное не-число (quiet NaN) |
-1.#QNAN |
Отрицательное несигнальное не-число (quiet NaN) |
1.#IND |
Положительная неопределённость |
-1.#IND |
Отрицательная неопределённость |
Положительная и отрицательная бесконечности могут получаться при переполнении в результате арифметического действия — например, при делении на ноль, или при взятии логарифма от положительного нуля. (По стандарту IEEE, любое значение с плавающей точкой имеет определённый знак — не только не-числа существуют в положительном и отрицательном вариантах, но и нулей тоже два.)
Читать полностью »
Что такое 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.
Недавно нашел очень грамотную статью и представляю ее качественный перевод.
Статья рекомендуется тем кто бессонными ночами копошиться в кодах С++.
Вам интересно ??
Прошу под кат!!!
Читать полностью »
Дружим 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++. В обоих случаях, если вы знаете оба языка как минимум хорошо, вам стоит это прочитать.
Читать полностью »
Презентация Герба Саттера про Visual C++ и C++11 на конференции BUILD
2012-11-03 в 0:35, admin, рубрики: c++, c++11, visual c++, метки: c++11, visual c++
Фото Channel9
Только что на Channel 9 закончилась презентация Герба Саттера на конференции BUILD в Редмонде. Кому интересен конспект его выступления с последними новостями про Visual C++ и C++11 в целом — прошу под кат.
Что делать велосепедисту в зимнее время?
2012-03-21 в 20:13, admin, рубрики: diy или сделай сам, visual c++, велоспорт, гонки, метки: visual c++, велоспорт, гонкиДобрый день.
Я заядлый велосипедист и, ясное дело, очень люблю это занятие. В нашем городе (Кривой Рог, Украина) есть клуб таких же, как и я, любителей велоспорта.
Решили мы, в зимнее время, устроить соревнования. Но, поскольку зимой гонки на открытом воздухе не организуешь, из-за погодных условий, придумали сделать соревнования в помещении, на велосипедах, закрепленных на месте (по принципу вело-тренажера).
Идея заключалась в том, что бы закрепить заднее колесо велосипеда в станине, на ней разместить датчик, который бы считывал количество оборотов колеса в секунду и передавал бы команды через ЛПТ порт на компьютер. Таким образом можно было бы увидеть с какой скоростью едет велосипед, хотя, по сути он стоит на месте, велосипедисты только педали крутят.
Между собой соревновались бы 2 велосипедиста, а дистанция, которую они проезжают, проецировалась бы на экран, в режиме онлайн и было бы видно их прохождение трассы и скорость. Вот такая была поставлена задача и для ее реализации нужно было написать программу.
Читать полностью »
Что делать велосипедисту в зимнее время?
2012-03-21 в 20:13, admin, рубрики: diy или сделай сам, visual c++, велоспорт, гонки, метки: visual c++, велоспорт, гонкиДобрый день.
Я заядлый велосипедист и, ясное дело, очень люблю это занятие. В нашем городе (Кривой Рог, Украина) есть клуб таких же, как и я, любителей велоспорта.
Решили мы, в зимнее время, устроить соревнования. Но, поскольку зимой гонки на открытом воздухе не организуешь, из-за погодных условий, придумали сделать соревнования в помещении, на велосипедах, закрепленных на месте (по принципу вело-тренажера).
Идея заключалась в том, что бы закрепить заднее колесо велосипеда в станине, на ней разместить датчик, который бы считывал количество оборотов колеса в секунду и передавал бы команды через ЛПТ порт на компьютер. Таким образом можно было бы увидеть с какой скоростью едет велосипед, хотя, по сути он стоит на месте, велосипедисты только педали крутят.
Между собой соревновались бы 2 велосипедиста, а дистанция, которую они проезжают, проецировалась бы на экран, в режиме онлайн и было бы видно их прохождение трассы и скорость. Вот такая была поставлена задача и для ее реализации нужно было написать программу.
Читать полностью »
Image Control своими руками в Visual C++
2012-03-21 в 9:58, admin, рубрики: c++, control, image, visual c++, Visual Studio, изображения, картинки, разработка, метки: c++, control, image, visual c++, изображения, картинкиВ Visual C++ нет нормального стандартного способа отображения произвольных изображений на форме. Конечно, можно воспользоваться Picture Control, но изображение в нем можно установить только из ресурсов (насколько я помню), отсутствует возможность масштабирования, и нет поддержки скролбаров, если изображение выходит за границы контрола. Эти задачи и были реализованы в Image Control (часть кода была заимствована из другого контрола, но к сожалению источник уже затерялся, так как делал я это давно).
Называется класс CImageViewer, и наследуется он от CWnd. Изображение, отображаемое в контроле, хранится в члене класса m_image с типом CImage. Это позволит нам отображать изображения большинства популярных форматов. Основные методы класса:
— Установка изображения: void SetImage(CImage *image);
— Увеличить: void ZoomIn();
— Уменьшить: void ZoomOut();
Остальные методы и члена класса являются служебными.Читать полностью »