我发现自己最近对Win32做了更多的C/C++代码,并且来自C#背景我已经开发出对完全一致的“干净代码”的痴迷,所以从美丽的System。*命名空间退出到构成Win32 API头文件的#定义的混乱是一种文化冲击。重新创建Win32头文件是一个好主意吗?
通过阅读MSDN的核心Win32函数的字母顺序列表,我意识到Win32的API设计实际上是多么简单,不幸的是,它被过去25年的所有东西所笼罩,包括许多对16位编程的引用在今天的64位世界中完全无关紧要。
我很快就要开始一个新的C/C++项目,并且我正在考虑如何根据需要重新创建Win32的头文件。我可以将它设计得很漂亮,但它仍然保持与现有程序的100%二进制(和源)兼容性(因为#defines最终解决了同样的问题)。
我想知道过去有没有人尝试过(谷歌什么都没有发现),或者如果有人想阻止我这样做。
我想到的另一件事是,如果使用更干净的C Win32 API,可以设计更清洁,更易于使用的C++ Win32 API封装,因为不会有任何来自旧C的命名空间污染Win32项目。
编辑:
只是为了澄清,我不是这样做是为了提高编译性能或任何种类的优化,我充分认识到编译器摒弃了未使用的一切。我在这里的任务是有一个Win32头文件库,很高兴与之合作(因为我不需要每次使用函数时都要压低Caps-Lock)。
也许你可以在这里给出一个或两个函数的例子。这听起来更像是你打算写一个本质上薄的包装库作为一种便利 - 从某种意义上说,这与ATL或MFC所做的并没有什么不同(甚至是窗口自己的,它包含了SendMessage和别的)。优点:做得好,它可以提高生产力并帮助避免常见的Win32 API陷阱(例如,通过注册表API获取正确的类型)。主要的缺点是,其他人看你的代码可能不知道你在做什么 - 这可能不是你的问题。 –
BrendanMcK
2011-05-27 02:12:54
看起来你有一个非常响亮的不! – 2011-05-27 11:16:12