●◇●◇献给初学者: 巧妙使用VC编译器。为你的软件分多个版本●◎◇●◇

类别:VC语言 点击:0 评论:0 推荐:

如果你的程序分为多个版本,比如 网络和个人,  网络版需要用到网络函数, 但是个人版就不需要,如果你用if语句判断一个版本标志是否用网络函数(比如 send(...))这样对程序是比较消耗cpu时间的

我已开始用的方法是:

//#define SOFT_VERSION   SOFT_VERSION_NETWORK //每次要编译的时候,就到这里来修改
//#define SOFT_VERSION_NETWORK 0
//#define SOFT_VERSION_PERSONAL  1

在程序里判断:
if (SOFT_VERSION == SOFT_VERSION_NETWORK)
{
网络函数
}


这种方法有个不好的地方,有时你会忘记 去改 #define SOFT_VERSION 的值。(我就经常忘记,然后在客户哪里打电话,告诉我的同事帮我修改再发给我,然后我又得到网吧去下载,...泰罗嗦了:)

今天早晨准备提个问题,看能不能找到更好的办法, 不过在提问题的时候,我发现这句话:

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

-----------------------------------------------
VC就是这么区分调试版本和发布版本?
我打开 project->setting->c/c++, 在 project option 里面发现 有这个/D "_DEBUG", 然后再msdn翻译了/D的作用, 顿时恍然大悟。

所以我想在的办法是

1、在 Set Actinve Config 里面增加四个 单机版的调试和发布,  网络版的调试和发布。 可以用汉字的哦。单机\网络的调试版从调试版copy过来. 发布版本从发布版copy过来。

2、在 project->setting->c/c++, 在 project option 里面增加:自己的宏定义,比如我的:  网络版:/D "SOFT_VERSION_NETWORK" .  个人版:/D "SOFT_VERSION_PERSONAL"

3、再者:在源程序需要用到网络的地方这么表达就可以了
#ifdef SOFT_VERSION_NETWORK
//网络函数
#endif

好了,你下次要编译, 使用 Batch B&uild... 吧!  你还可以自己扩展

---------------------------本文属于自己的摸索,还有好多高手都会这些,我只不过把它写出来给初学者看看,让他们少走些湾路-----------------

谢谢观赏!

 

 

本文地址:http://com.8s8s.com/it/it1969.htm