В последнее время я все больше работаю с кодом C / C ++ для Win32, и, исходя из фона C #, я разработал навязчивую идею «чистого кода», которая полностью согласована, поэтому отходит от прекрасного пространства имен System. *Возвращаясь к путанице #defines, составляющих заголовочные файлы Win32 API, это немного шокирует.
Прочитав алфавитный список основных функций Win32 в MSDN, я понял, насколько на самом деле прост API Win32, иприскорбно, что он окутан всеми событиями последних 25 лет, в том числе многочисленными ссылками на 16-битные программы, которые совершенно неактуальны в современном 64-битном мире.
Я должен начать новый C /Проект C ++ скоро, и я думал о том, как я мог бы воссоздать заголовки Win32 по мере необходимости.Я мог бы сделать его красивым, и все же он поддерживал бы 100% бинарную (и исходную) совместимость с существующими программами (потому что #defines в конечном счете разрешают ту же самую вещь).
Мне было интересно, пытался ли кто-нибудь это сделатьв прошлом (Google ничего не обнаружил), или если кто-то хотел отговорить меня от этого.
Еще одна вещь, о которой я подумал, заключалась в том, как с более чистым C Win32 API становится возможным разработать более чистый и простойиспользовать оболочку C ++ Win32 API поверх, так как не будет никакого загрязнения пространства имен от старых элементов C Win32.
РЕДАКТИРОВАТЬ:
Просто чтобы уточнить, я не делаю это дляулучшить производительность компиляции или для любого вида оптимизации, я полностью осознаю, что компилятор избавляется от всего, что не используется.Мой квест состоит в том, чтобы иметь библиотеку заголовков Win32, с которой приятно работать (потому что мне не нужно нажимать Caps-Lock каждый раз, когда я использую функцию).