Visual Studio属性配置中使用宏

      在学习C语言的时候,我们曾经遇到过一个宏的概念。宏的作用机理本质上是宏的展开,C语言中的宏的用法也有很多种(水其实很深...),不过从感觉上来讲,人们大致上会在以下的场景中,利用宏来解决一些窘境:一是为了避免重复书写同样性质代码时,会使用到宏;二是为了定义一些常量参数时,会使用到宏。另外,宏的意义也在于,当我们修改某个宏的定义时,便修改了所有引用宏的地方所展开的代码,这无疑节省了我们修改代码的工作量以及代码修改的灵活性。

      在Visual Studio中进行C++工程属性的配置时,同样也会遇到与写代码类似的场景,例如我们可能会在不同的表单(同一个工程或者多个工程)中,填写相同的内容(例如某个路径)。这样就造成了一些重复性的劳动,而且填写时可能因为疏忽而造成错误,修改时也需要找到所有填写这个内容的地方。为了解决这个问题,Visual Studio在工程属性配置时,也提供了宏这样一个工具,来帮助我们减少这些无谓的辛劳。

      C++工程属性中的宏

      工程属性中的宏具体长得是什么样子呢?在打开工程属性时,我们在表单中可能经常会看到一些以美元符号($)为开头的字符串,$(SomeMacro)。其实这些字符串便是Visual Studio中默认定义的一些宏,它们其实就是代表一些与某个工程相关的常量字符串。在下图中我们可以看到一些这样默认定义的宏:


      任意点击一个表单,然后点击Edit选项,便可以在弹出的窗口中,查看这些默认定义宏的含义。




      注意到上面两个宏进行结合,对项目的输出路径(Output)进行了配置,也就是项目生成exe、lib或dll的地方。Visual Studio中还有很多类似这样的宏,有些宏还是和机器相关的,所以我们也可以利用其来进行工程配置,避免因为不同机器上路径不同,而对每台机器单独配置一次属性。对工程属性中默认定义的宏,微软的官方指南上也有一个比较详细的介绍。

http://msdn.microsoft.com/en-us/library/c02as0cs.aspx

      自定义工程属性中的宏

      那么我们如何自己定义工程属性中的宏呢?首先我们需要打开属性管理器选项卡(Property Manager),然后为工程添加一个属性页面(Property Sheet)。该属性页面在被添加后,会被当前的工程属性继承,于是便可以使用其中定义的宏了。






      以上添加了一个宏,代表使用OpenCV第三方库的版本号,因为在第三方库升级时,库的名字也会随版本号发生改变;而使用了宏后,我们就可以很方便的修改引用库的名称了。下面我们可以回到原来的工程属性当中来,利用上面的宏来动态确定引用库的名称。



      我们可以看到,Linker当中所展开的命令行参数中,$(OpenCVLibVersion)已经被展开为245了。而以后在发生库版本的升级时,便可以只修改$(OpenCVLibVersion)这个宏便可以正常使用升级后的库了,所以这种方法还是很实用的吧。在工程属性的配置中,宏的使用场景还有很多,如果能够灵活使用,便可以节省很多的时间,避免很多因重复劳动所造成的错误。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值