重新创建Win32的标题是一个好主意吗?

Dai*_*Dai 7 c winapi header

我发现自己最近在Win32上做了更多的C/C++代码,并且来自C#背景我已经开发了一个完全一致的"干净代码"的痴迷,所以从美丽的System.*命名空间转回到组成Win32 API头文件的#defines的mishmash有点文化冲击.

在阅读了MSDN按字母顺序排列的Win32核心函数列表之后,我意识到Win32的API设计实际上是多么简单,不幸的是它被过去25年的所有瑕疵笼罩着,包括许多对16位编程的引用,它们在今天完全无关紧要64位世界.

我很快就要开始一个新的C/C++项目了,我正在考虑如何根据需要重新创建Win32的头文件.我可以将它设计得很漂亮,但它会保持与现有程序的100%二进制(和源)兼容性(因为#defines最终解决了同样的问题).

我想知道是否有人曾经尝试过这个(谷歌什么都没有),或者是否有人想劝阻我.

我想到的另一件事是,如何使用更干净的C Win32 API,可以在顶部设计更干净,更易于使用的C++ Win32 API包装器,因为旧的C Win32项目不会有任何命名空间污染.

编辑:

只是为了澄清,我不是为了提高编译性能或任何类型的优化,我完全清楚编译器会废弃所有未使用的东西.我在这里的任务是拥有一个很高兴使用的Win32头库(因为我不需要每次使用函数时都按下Caps-lock).

SLa*_*aks 10

不要这样做.

这可能是可能的,但这需要很长时间,并可能导致细微的错误.

然而,更重要的是,它将使您的程序完全不可能为您以外的任何人维护.