Blog. Just Blog

Образ мышления: Assembler

То, что не удается запрограммировать на Ассемблере, приходится паять
Образ мышления: Assembler - RSS-канал Образ мышления: Assembler - Карта сайта

Парсинг метаданных AIFF-файлов на Ассемблере

22.03.2023 | Категория: Образ мышления: Assembler | Автор: ManHunter

Парсинг метаданных AIFF-файлов на Ассемблере

AIFF (Audio Interchange File Format) - это формат файлов для сохранения аудиоинформации без потерь, обеспечивающий высокое качество звука. Не самый популярный формат, в дикой природе встречается редко, в основном на устройствах производства Apple, но все равно имеет место быть. Меня же интересуют исключительно метаданные, которые в нем хранятся.

Читать статью целиком »
Просмотров: 357 | Комментариев: 0

Парсинг метаданных Opus-файлов на Ассемблере

06.03.2023 | Категория: Образ мышления: Assembler | Автор: ManHunter

Парсинг метаданных Opus-файлов на Ассемблере

Пиратил тут очередную партию музыкальных новинок и один из альбомов оказался в невиданном ранее формате с расширением ".opus". Естественно, первым желанием было не послушать, а поковыряться во внутренностях файлов. Как оказалось, аудиокодек Opus это детище тех же разработчиков, которые до этого выпустили кодек OGG. Несомненно, алгоритмы кодирования звукового потока отличаются, а вот сама внутренняя структура файла практически в точности повторяет разобранный ранее формат OGG. В том числе и способ хранения метаданных, которые меня интересуют.

Читать статью целиком »
Просмотров: 412 | Комментариев: 0

Отправка POST- и GET-запросов на Ассемблере

15.02.2023 | Категория: Образ мышления: Assembler | Автор: ManHunter

Отправка POST- и GET-запросов на Ассемблере

В наше время интернет-технологий профессиональные приложения должны уметь работать с удаленными сервисами. Хороший пример был в недавней статье про оптимизацию изображений. Тут есть все: отправка файла через POST-запрос и получение ответа в виде текстового JSON, а затем скачивание изображения по прямой ссылке через GET-запрос. Давайте реализуем работу с POST- и GET-запросами на Ассемблере, а чтобы польза от работы получилась не только теоретической, но и практической, это будет пример с оптимизацией графических файлов через API сервиса TinyPNG.

Читать статью целиком »
Просмотров: 900 | Комментариев: 2

Универсальное извлечение метаданных из файлов

09.02.2023 | Категория: Образ мышления: Assembler | Автор: ManHunter

Универсальное извлечение метаданных из файлов

За последнее время на сайте появилось немало статей, посвященных работе с метаданными файлов различных форматов. Но там рассматривались только определенные форматы и использовались методы, заточенные под определенную структуру файлов. Но в Windows есть очень мощные инструменты, которые позволяют получить множество полезной информации практически из любого файла, независимо от его структуры и типа.

Читать статью целиком »
Просмотров: 634 | Комментариев: 0

Использование системного окна прогресса на Ассемблере

23.01.2023 | Категория: Образ мышления: Assembler | Автор: ManHunter
Системное окно прогресса - удобный инструмент в тех случаях, когда нет возможности возиться с кастомизацией или созданием нестандартных элементов, или хочется сделать все максимально приближенным к системному интерфейсу, независимо от платформы, где будет запускаться ваше приложение. И очень странно, что нет никакой информации о реализации этого диалогового окна на Ассемблере, хотя все делается достаточно просто. Начинаем с описания интерфейса, GUID'ов и констант.
  1. ; GUID {F8383852-FCD3-11D1-A6B9-006097DF5BD4}
  2. CLSID_ProgressDialog \
  3.     dd 0F8383852h
  4.     dw 0FCD3h
  5.     dw 011D1h
  6.     db 0A6h, 0B9h, 000h, 060h, 097h, 0DFh, 05Bh, 0D4h
  7.  
  8. ; GUID {EBBC7C04-315E-11D2-B62F-006097DF5BD4}
  9. IID_IProgressDialog \
  10.     dd 0EBBC7C04h
  11.     dw 0315Eh
  12.     dw 011D2h
  13.     db 0B6h, 02Fh, 000h, 060h, 097h, 0DFh, 05Bh, 0D4h
  14.  
  15. ; IID_IProgressDialog Interface
  16. struct IProgressDialog
  17.     ; IUnknown
  18.     QueryInterface      dd ?
  19.     AddRef              dd ?
  20.     Release             dd ?
  21.     ; IProgressDialog
  22.     StartProgressDialog dd ?
  23.     StopProgressDialog  dd ?
  24.     SetTitle            dd ?
  25.     SetAnimation        dd ?
  26.     HasUserCancelled    dd ?
  27.     SetProgress         dd ?
  28.     SetProgress64       dd ?
  29.     SetLine             dd ?
  30.     SetCancelMsg        dd ?
  31.     Timer               dd ?
  32. ends
  33.  
  34. PDTIMER_RESET  = 0x00000001
  35. PDTIMER_PAUSE  = 0x00000002
  36. PDTIMER_RESUME = 0x00000003
  37.  
  38. PROGDLG_NORMAL          = 0x00000000
  39. PROGDLG_MODAL           = 0x00000001
  40. PROGDLG_AUTOTIME        = 0x00000002
  41. PROGDLG_NOTIME          = 0x00000004
  42. PROGDLG_NOMINIMIZE      = 0x00000008
  43. PROGDLG_NOPROGRESSBAR   = 0x00000010
  44. PROGDLG_MARQUEEPROGRESS = 0x00000020
  45. PROGDLG_NOCANCEL        = 0x00000040
Окно прогресса создается, настраивается и управляется при помощи методов интерфейса IProgressDialog.

Читать статью целиком »
Просмотров: 579 | Комментариев: 2

prev 01 ... 05 06 07 08 09 10 11 ... 68 next
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.08 сек. / MySQL: 2 (0.0035 сек.) / Память: 4.5 Mb
Наверх