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

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

如果你的程序分为多个版本,比如 网络和个人, 网络版需要用到网络函数, 但是个人版就不需要,如果你用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... 吧! 你还可以自己扩展

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

谢谢观赏!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航