程序分成三大部分功能,分别表示为:Part1,Part2,Part3.
其中版本1:包含Part1;
    版本2:包含Part1+Part2;
    版本3:包含Part1+Part3;
    版本4:包含Part1+Part2+Part3.我现在的实现是,通过定义四个宏来区分,如下:
//公众简化版
//#define VER_PUBLIC_SIMPLE 0
//公众完全版
//#define VER_PUBLIC_COMPLETE 1
//网管简化版
//#define VER_MANAGER_SIMPLE 2
//网管完全版
#define VER_MANAGER_COMPLETE 3//公众简化版
#ifdef  VER_PUBLIC_SIMPLE
#define PART1 1
#endif//公众完全版
#ifdef VER_PUBLIC_COMPLETE
#define PART1 1
#define PART2 2
#endif//网管简化版
#ifdef  VER_MANAGER_SIMPLE
#define PART1 1
#define PART3 3
#endif//网管完全版
#ifdef VER_MANAGER_COMPLETE
#define PART1 1
#define PART2 2
#define PART3 3
#endif
每次需要编译都要改变一下宏的定义,因此感觉操作起来不简便,不知道那位高手,有没有更好的版本管理办法?

解决方案 »

  1.   

    你一个workspace里弄4个project不就行了?
      

  2.   

    Part1,Part2,Part3分别剥离成3个工程,可以使用COM或DLL定义接口,装卸都是很容易的,你可以参考插件的做法。
      

  3.   

    可以在一个工程里面加编译项啊,分别在设置里面定义不同的宏。
    bulid->configuration.
      

  4.   

    条件编译
    或用组件的方法,把3个part分成3个组件,然后对于不同的版本加载不同的组件
      

  5.   

    如果不用动态加载只能4个project
      

  6.   

    最简单的办法就是在一个工程里面加编译项啊,分别在设置里面定义不同的宏。
    1、添加不同的编译选项,假设你现在只有两个编译选项Win32 Debug 和 Win32 Release
    【bulid】【configurations】,【Add】,可以取名为【CustomRelease1】,Copy setting from选择 Win32 Release。相同办法建立【CustomRelease2】,【CustomRelease3】,【CustomRelease4】2、【Project】【Settings】,选择【CustomRelease1】,切换到Tab页【C++】,在【Preprocessor Definitions】中,添加,VER_PUBLIC_SIMPLE
    相同办法对【CustomRelease2】添加,VER_PUBLIC_COMPLETE  ...