Как стать автором
Обновить
7
0
VextoR @VextoR

Пользователь

Отправить сообщение

Получаем версию файла (exe, dll) с помощью java

Время на прочтение4 мин
Количество просмотров4.2K
Столкнулась я с такой проблемкой — как получить версию файла (exe и dll) на java. Ведь обычными стандартными средствами определить это нельзя, а только лишь можно узнать размер, дату последней модификации и некоторые другие свойства файла. Это описано тут.
Покопавшись на форумах и всё хорошенько прогуглив — нашла два таких выхода — JNI и JNA. Остановилась на втором варианте, так как на С++ писать специальную dll ну уж очень не хотелось, хотелось всё решить с помощью java и обращаться напрямую к version.dll (C:\WINDOWS\system32).
В итоге решение сводится к такой связке GetFileVersionInfo GetFileVersionInfoSize VerQueryValue. Долго пришлось поразбираться с функцией VerQueryValue — сложность была в том, что версии файлы зависят от языка и необходимо было хитрым способом получить LANGANDCODEPAGE. В итоге получился такой класс:

Читать дальше →

Стандартный программист

Время на прочтение3 мин
Количество просмотров17K
Примерно неделю назад принимал участие в конкурсе на открытую вакансию Microsoft. И провалился. Прошла неделя, мысли в голове (как же так? не может быть!) немного улеглись и я сделал некоторые выводы из этого опыта, коими и хочу поделиться с хабражителями.
Читать дальше →

Синтаксис объявления указателей на функции в С++

Время на прочтение1 мин
Количество просмотров32K
Когда я только начинал использовать С++, то всё время забывал синтаксис определения указателей на функции и особенно указателей на функции члены.

Позже узнал об одном небольшом lifehack'e, который помог мне избавиться от того что-бы держать в голове синтаксис определения указателей на ф-ции. Правда чуть позже этот всё само как-то осело у меня в голове и даже стало очевидно.

На днях показывал этот lifehack одному программисту и решил поделиться им здесь.
Читать дальше →

Статический анализ Си++ кода и новый стандарт языка C++0x

Время на прочтение18 мин
Количество просмотров5.9K
Аннотация
Введение
1. auto
2. decltype
3. Ссылка на временный объект (R-value reference)
4. Правые угловые скобки
5. Лямбда-функции (Lambdas)
6. Suffix return type syntax
7. static_assert
8. nullptr
9. Новые стандартные классы
10. Новые направления в развитии статических анализаторов кода
Заключение
Библиографический список

Аннотация


В статье рассмотрены новые возможности языка Си++, описанные в стандарте C++0x и поддержанные в Visual Studio 2010. На примере PVS-Studio рассмотрено, как изменения языка отразятся на инструментах статического анализа кода.
Читать дальше →

Уроки разработки 64-битных приложений на языке Си/Си++

Время на прочтение2 мин
Количество просмотров7.1K
Мы регулярно пишем статьи посвященные разработке и тестированию 64-битных программ на языке Си/Си++. Каждая из статей представляет взгляд на задачу разработки 64-битных программ с разных точек зрения. Но существенная часть информации в них повторяется, так как необходимо знакомить читателя с проблематикой и вводить различные определения. Это, к сожалению, делает чтение подборки статей скучным занятием и соответственно не позволяет всесторонне изучить вопросы разработки 64-битных приложений.

Мы решили объединить все наши знания в единый труд, в котором будут рассмотрены сразу все вопросы, касающиеся 64-битного программирования. Для оформления в виде статьи материала оказалась слишком много и мы решили представить его в виде курса уроков.

Кратко опишу курс "Уроки разработки 64-битных приложений на языке Си/Си++" и приведу его содержание.
Читать дальше →

Боремся с утечками памяти (C++ CRT)

Время на прочтение6 мин
Количество просмотров62K
Утечка памяти — довольно серьезная и опасная проблема. Быть может, пользователь и не заметит однократной утечки каких-нибудь 32Кб памяти (а ведь это целые 5% от 640Кб, которых «хватит всем»), но постоянно теряя сложные иерархические структуры или массивы размером больше INT_MAX (которые мы так любим создавать на 64-битной архитектуре) мы обречем его на страдания, а наш продукт на провал.

Не допускать ситуации вроде бы и не трудно — воспользуемся правилом «класть на место всё что взяли», но на практике это сильно осложняется человеческим фактором (банальная невнимательность), хитростью архитектуры и нелинейным порядком выполнения операторов, например, из-за применения исключений.

А можно было бы просто «отдаться» автоматическому сборщику мусора, ценой потери производительности (и это не обязательно Managed C++, для Native C++ / C есть библиотеки сборки мусора, вот, например).

Но мы поговорим о ситуации когда уже «всё плохо».
Читать дальше →

Дистанционное управление по ИК

Время на прочтение2 мин
Количество просмотров91K

Всем добрый день!


В рамках моего проекта:
Создаем робота в домашних условиях
был сделан модуль управления роботом по ИК каналу. Вот о нём я бы и хотел написать поподробнее. Так как применений этому можно найти очень много.

Собственно, что такое ИК-управление — объяснять, думаю, не нужно. Сейчас более распространено управление по Wi-Fi, Bluetooth, ZigBee. Но если вам требуется простое устройство, которое можно собрать «на коленке» при минимальных затратах, то эта статья для вас. =)

Читать дальше →

7 шагов по переносу программы на 64-битную систему

Время на прочтение20 мин
Количество просмотров41K

Аннотация


В статье рассмотрены основные шаги, обеспечивающие корректный перенос 32-битных Windows приложений на 64-битные Windows системы. Хотя статья ориентирована на разработчиков, использующих язык Си/Си++ в среде Visual Studio 2005/2008, она будет полезна и другим разработчикам, планирующим перенос своих приложений под 64-битные системы.

Читать дальше →

Печать книг по программированию в домашних условиях

Время на прочтение1 мин
Количество просмотров28K
Честно говоря, никогда не любил читать техническую литературу с экрана. Художественную — сколько угодно — читал и с компа и с телефона и, как вот уже лет 5-6, с КПК (хотя, бесспорно, всегда отдавал предпочтение книгам бумажным). А вот техническую — хоть ты тресни — только с бумаги воспринимаю.

Печатать на A4 — может и клево, но непонятно как потом скреплять, степлер не берет, дырокол тоже ругается, прочих средств под рукой обычно нету.

Читать дальше →

Каким образом вы узнали то, что вы знаете?

Время на прочтение5 мин
Количество просмотров2.5K
Я получил это электронное письмо сегодня от Марка…

Привет Джо,
Во-первых я хотел бы поблагодарить вас за всю информацию, которую вы опубликовали на asp.net. Я почерпнул оттуда очень многое. Так же я слежу за вашими твиттами и меня заинтересовало, с чего вы начинали, как накапливали опыт для того, что бы стать Senior Program Manager в Microsoft. Если у вас будет возможность ответьте мне, я бы был очень благодарен.
Заранее спасибо,
Марк


Я получаю сообщения, подобные этому, один раз в несколько недель и вот наконец-то, я решил ответить всем, кому это интересно.

Читать дальше →

Parse it!

Время на прочтение4 мин
Количество просмотров7.8K
Какое-то время назад мне по работе пришлось провести небольшое исследование. Суть его состояла в поиске наилучшего pdf-парсера реализованного на java.

Немного о проекте. В нем реализована система пересылки внутренних сообщений, к которым могут быть прикреплены файлы. Также есть поиск, который должен осуществляться по содержимому аттачментов. Большую часть подобных аттачментов составляют pdf-ки.
Собственно работа механизма довольно проста: при отсылке сообщения данные аттачмента парсятся и по ним стороится индекс.

Долгое время документы парсились при помощи библиотеки PDFBOX, работа которой не вызвала ни у кого радости: долго и со сбоями.
В итоге были выбраны 4 библиотеки, сравнением которых я занялся: PDFBOX, JPod, iText и Acrobat.
Читать дальше →

Начало научной карьеры (часть 4)

Время на прочтение6 мин
Количество просмотров5K
Наверно, после этой части мы сделаем небольшой шаг назад и поговорим о том, как выглядит хорошая «болонская» магистратура, а пока продолжу разговор об аспирантуре.

Надо сказать, что в аспирантуре различия между странами и вузами начинают потихоньку стираться. Если не обращать внимания на важные, но в общем-то второстепенные вещи, то можно сказать, что российская аспирантура не очень сильно отличается от зарубежной. Пожалуй, самое заметное внешнее отличие состоит в том, что западному аспиранту приходится гораздо больше учиться (в обычном, «студенческом» смысле), то есть ходить на курсы и сдавать экзамены.
Читать дальше →

Как подружить Java и C++. Часть первая

Время на прочтение5 мин
Количество просмотров101K
Здравствуйте.

Как вы, наверное, уже догадались, речь пойдет о JNI. Для тех, кто не знает что это, объясняю: JNI (или java native interface) — это такая штука, которая позволяет делать вызовы нативного кода из java машины и наоборот.

Зачем это может потребоваться? Есть несколько причин: необходимость использовать код, который уже написан для нативной платформы, необходимость реализовать что-то такое, что невозможно сделать с помощью одной JVM (например, работа с какими-нибудь специфическими железками), ну и ускорение выполнения критических кусков кода (правда, это весьма спорный момент).

Так как же им пользоваться?

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность