Архив рубрики: Windows

Чем плоха функция PulseEvent

Лично мне нравится функция PulseEvent. Она освобождает и тут же вновь захватывает объект событие. Но, как справедливо отметили в комментариях к одному из моих прошлых постов, компания Microsoft не рекомендует ее к использованию. Вместо нее, начиная с Windows Vista, рекомендуется использовать механизм условных переменных (condition variable). Функция PulseEvent сохранена исключительно в целях обратной совместимости. Но давайте попробуем разобраться, чем она так плоха и можно ли с этим что-то сделать?

Читать полностью →

Текстовый редактор для Git в среде Windows

Git требует, чтобы каждый коммит сопровождался текстовым пояснением. Для краткого пояснения вполне достаточно ключа -m, но назначение коммита не всегда можно описать одним словосочетанием. В этом случае использовать ключ -m неудобно.

Вообще грамотное составление коммитов и комментариев к ним — отдельная тема, которую мы не будем здесь обсуждать. Я хотел прежде всего сосредоточиться на инструментарии. Точнее поделиться своим личным опытом поиска оного в среде Windows. Читать полностью →

Две проблемы использования Git в Windows

Все знают, что Git изначально появился в Linux и только потом его портировали в Windows. Это наложило определенный отпечаток на его работу в «не родной» для себя среде. Сегодня я опишу две проблемы, с которыми я столкнулся при использовании Git в среде Windows. Читать полностью →

Тестирование консольной программы с помощью bat файла 2

Продолжаем наш разговор о тестировании приложений с помощью bat файлов. В прошлой статье мы рассмотрели, как провести однократный тест. Но что если тестов несколько? Читать полностью →

Тестирование консольной программы с помощью bat-файла

Типичная ситуация: вы написали программу и хотите проверить ее работу. Проводить тесты вручную неудобно. Нужно как-то автоматизировать этот процесс. Что если использовать bat-файлы? Читать полностью →

Символические ссылки не удаляют себя из пути

Несколько дней назад я работал с символическими ссылками в Linux. Я пытался с их помощью решить одну задачу, но мне это не удалось. Как оказалось, они не удаляют себя из полного пути к файлу, на что я рассчитывал. Позже выяснилось, что похожим образом себя ведут и их братья в Windows. Читать полностью →

О важности префикса «\\\\?\\\\»

В одном из своих прошлых постов я писал о получении списка доступных COM портов на основе информации в реестре. Порты там представлены в виде строк «COM1», «COM2» и т.д. В принципе ничто не мешает передавать их в таком виде в функцию CreateFile для открытия. Однако для большей надежности я советую добавлять к ним префикс «\\\\?\\\\». Зачем? Читать полностью →

Получение списка доступных COM портов

При программировании COM портов полезно иметь возможность получать список доступных портов на компьютере. Эта задача встречается настолько часто, что я решил затронуть ее в своем блоге. Читать полностью →

Ошибка 0xC000007B и смешение кода

Сравнительно недавно я работал над одной небольшой программой. Она была предельно простой (проверяла работу функции в подгружаемой библиотеке). Программа нормально компилировалась (даже без предупреждений), но при ее запуске выдавалось сообщение об ошибке 0xC000007B. Читать полностью →

Функция PulseEvent в роли спускового крючка

Функция PulseEvent предназначена для кратковременного перевода объекта событие в свободное состояние с его последующим возвратом в занятое состояние. Обычно в литературе по Windows API ей уделяется мало внимания. Тем не менее, её можно использовать в качестве спускового крючка при управлении потоком. О том, как это сделать, я сегодня и расскажу. Читать полностью →