使用VC++进行项目开发的API抉择

1 根本目的

视图与逻辑隔离、易于不同平台的移植,易于逻辑开发人员和视图开发人员的协作。

2 基本原则

  • 同样功能的前提下,优先选择标准C++库的API
  • 程序逻辑部分拒绝使用MFC
  • 只在界面和必须使用MFC的情况下,使用MFC    

3 选择结果

  1. 数据结构,如链表、哈希表、队列等,使用标准C++库,如std::vector<>而不是MFC的CArray<>;
  2. 线程、进程、同步等与UI无直接关联的部分,使用Window API,而不用MFC的封装版本;
  3. 界面特效、Windows消息处理,直接使用MFC;
  4. 把逻辑实现与消息处理函数分开,放到单独的逻辑处理类中去完成,消息处理函数只负责完成用户输入校验,然后调用逻辑实现函数。
  5. 对于动态链接库的项目,导出的API是纯C函数,而不要导出C++类,更不要导出基于MFC的C++类。因为C++对于对象的内存布局并没有统一标准,所以不能跨平台。
以上为开发过程中个人的一些小总结,本以为这辈子不再使用C++做开发了,因为个人觉得底层有C,上层有C#,Web由PHP,这就是完美世界了。然而,世事弄人,这段时间不仅又干起了C++的活,而且还是带有MFC的VC++,更悲催的是要在古老的VC++ 6.0下编码。

你可能感兴趣的:(使用VC++进行项目开发的API抉择)