Добываем WinApi хидеры

Парсить хидеры хорошо! Из них можно генерировать базы для трешгенов или инклуды для сокрытия импорта.

Основная проблема парсинга хидеров из DDK – это макросы:

Аналогов __out_data_source превеликое множество, даже вне описания параметров:

С горем пополам, отпарсив импорт из пары хидеров, мы поняли что это путь в никуда. Обилее макросов, дефайнов и прочего плохо-перевариваемого регулярками дерьма! Необходимо свежее решение!

Воруем хидеры с MSDN

Для начала скачаем оффлайн-справку

  • Открываем VisualStudio
  • Help -> Set Help Preference -> Launch in Help Viewer
  • Manage Content -> Desktop Application -> Update

winapi

Парсим справку

Это банальные zip архивы, распакуем их в нужное место. Как и в прошлый раз нас выручают php и регулярные выражения. Далее мы выдираем код из всех файлов:
Немного позднее, я стал выдирать имя из поля Header и складывать файлы сообразно ему.

header

Больше никаких сложных макросов!

Посмотреть на готовый результат можно на нашем GitHub

Что дальше?

Мы получили все хидеры в пригодном для парсинга варианте! Теперь можно собрать свежую базу для вашего генератора мусора!

Отписывайте ошибки парсинга и ваши предложения сюда.

Добавить комментарий