Работая над одной программой, я заметил ошибку. Первоначально я решил, что это ошибка сервера, но, переписав пример на другой язык программирования, я понял, что сервер тут ни при чем. Читать полностью →
Обновленный класс TEventThread
В позапрошлом посте я подробно описал класс TEventThread, реализующий управление потоком с помощью функции PulseEvent. Пришло время немного доработать этот класс. Читать полностью →
Полемика о времени жизни объекта
В своей предыдущей статье я представил алгоритм использования функции PulseEvent в качестве спускового крючка. Такой подход предполагает, что исполнительный поток создается во время старта программы и уничтожается только тогда, когда основная программа завершает свою работу. С таким подходом могут не все согласиться. Читать полностью →
Функция PulseEvent в роли спускового крючка
Функция PulseEvent предназначена для кратковременного перевода объекта событие в свободное состояние с его последующим возвратом в занятое состояние. Обычно в литературе по Windows API ей уделяется мало внимания. Тем не менее, её можно использовать в качестве спускового крючка при управлении потоком. О том, как это сделать, я сегодня и расскажу. Читать полностью →
«Fatal: Expected file name» простое решение этой проблемы
Все, кто работал с C++ Builder, наверняка сталкивались с этой проблемой. Когда при компиляции программы выдается ошибка с текстом: «[Linker Fatal Error] Fatal: Expected a file name:». Всё, никакой дополнительной информации нет. Только эта строка. В результате чего пользователи вынуждены гадать: что делать и куда копать.
На самом деле в большинстве случаев эта проблема решается очень просто.
Проблема с отображением содержимого chm файла и ее решение
Сегодня обнаружил, что современные версии операционной системы Windows (начиная с Windows Vista) в целях нашей с вами защиты не отображают содержимое chm файлов, скачанных из Интернета. К счастью эту особенность поведения легко поправить.
Странное поведение функции ClearCommError
Некоторое время назад при работе над одной программой я столкнулся с необычным поведением функции ClearCommError. Задача была довольно простой: есть прибор, от которого по COM порту принимаются данные. Вроде бы ничего сложного, но меня ждал подвох.
Алгоритм подсчета счастливых билетов
Задача вычисления количества счастливых билетов известна давно. Ее задавали практически любому школьнику, обучающемуся программированию. В интернете можно найти множество ее решений на разных языках программирования. Все эти варианты сводятся к перебору всех существующих билетов и проверке их на «счастливость». Получается миллион вариантов.
Но данную задачу можно решить и другим способом, перебрав всего тысячу вариантов.