Статьи с тегом «C++»
Статьи с тегом «C++» (16 шт.), от новых к старым.
-
Пул потоков Win32 — параллелизм через CreateThreadpoolWork без своих потоков
Не плодите ли вы CreateThread по всему нативному коду? Разбираем API пула потоков Win32, переработанный в Vista: четыре объекта work, timer, wait и io, групп...
-
Именованные каналы на практике — от проектирования до безопасности IPC в Windows
Практический разбор именованных каналов — стандартного IPC в Windows. По первоисточникам: выбор байтового режима и режима сообщений, сервер на несколько клие...
-
DllMain и блокировка загрузчика — почему говорят «ничего не делайте при инициализации DLL»
Почему из DllMain нельзя вызывать LoadLibrary и синхронизироваться с другими потоками. По первоисточникам: как блокировка загрузчика сериализует все уведомле...
-
Ложное пробуждение: почему wait на условной переменной возвращается без уведомления и как ждать в Windows
wait на условной переменной может вернуться и без уведомления (ложное пробуждение). Разбираем по реализации Windows, почему спецификация это допускает, и пок...
-
Практические приёмы многопоточности в C++: как RAII и jthread убирают аварии из конструкции
В C++ гонка данных — это неопределённое поведение. Разбираем ловушку деструктора std::thread, остановку через jthread и stop_token, предотвращение взаимных б...
-
Обратная совместимость интерфейсов DLL и COM — таблица: какие изменения ломают вызывающий код
Какие изменения DLL или COM-компонента ломают вызывающий код. Разбираем три слоя совместимости — бинарную, исходного кода и поведенческую, — таблицу решений ...
-
Что такое MFC в Windows: основы для сопровождения существующих приложений
Разбираем обзор Microsoft Foundation Classes (MFC): связь с Win32, структуру приложения, карты сообщений, архитектуру Document/View, DDX/DDV и нюансы, важные...
-
Чек-лист безопасной работы с дочерними процессами в Windows-приложении
Чтобы безопасно работать с дочерними процессами в Windows-приложении, важнее не API запуска, а владение деревом процессов и процедура завершения. Разбираем J...
-
Распространение Windows-приложения одним файлом — single binary и пределы зависимости от ОС
Когда хочется свести Windows-приложение к одному EXE, важно различать «сделать один файл поставки» и «убрать зависимость от ОС». Разбираем это на примере .NE...
-
Разделяемая память: подводные камни и практические рекомендации
Подводные камни разделяемой памяти на практике и проектирование, которое снижает частоту сбоев: синхронизация, видимость, время жизни, ABI и права доступа.
-
Как честно сравнивать скорость C#, C++, Java и Go
Как честно сравнивать скорость C#, C++, Java и Go: проектирование измерений, прогрев, фиксация окружения, чтение статистики и конкретные сценарии бенчмарков.
-
Как наложить изображение и текст на кадры MP4 в Media Foundation
Разбираем, как в Media Foundation прожечь изображение и текст в каждый кадр MP4 и собрать новый файл: роли Source Reader, отрисовки, преобразования цвета и S...
-
Как преобразовать YUV в RGB с помощью Media Foundation
Как в Media Foundation преобразовать кадр YUV в RGB: автоматическое преобразование Source Reader, самостоятельное преобразование NV12/YUY2, stride и цветовое...
-
Как извлечь кадр из MP4 по заданному времени с помощью Media Foundation
Как Source Reader берёт из MP4 кадр, ближайший к заданному времени, выравнивает stride и alpha в RGB32 и сохраняет результат в PNG.
-
Как вызвать Native AOT DLL на C# из C/C++
Как опубликовать библиотеку классов C# как нативную DLL через Native AOT и вызывать точки входа UnmanagedCallersOnly из C/C++: когда схема уместна, какие пат...
-
Введение в Media Foundation: как понять API через COM
Разбираем, что такое Media Foundation, вместе с базовой терминологией Windows-медиа-API — COM, HRESULT, IMFSourceReader, MFT — в том порядке, в котором стоит...