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)这个宏便可以正常使用升级后的库了,所以这种方法还是很实用的吧。在工程属性的配置中,宏的使用场景还有很多,如果能够灵活使用,便可以节省很多的时间,避免很多因重复劳动所造成的错误,希望对大家也有帮助。
http://blog.csdn.net/raocong2010/article/details/9209591
Visual Studio属性配置中使用宏的更多相关文章
- 在visual studio工程设置中增加宏定义的方法
在Solution Explorer中鼠标右键点击其project之后,Configuration(Release)->Configuration Propertity ->C++ -&g ...
- visual studio 2010配置驱动开发环境
visual studio 2010 配置驱动开发环境 ** 工具/材料 VS2010.WDK开发包 ** 配置过程 以下将讲述VS2010驱动开发环境的配置过程,至于必要软件的安装过程这里不再赘述 ...
- Win7系统Visual Studio 2013配置OpenCV3.1图文详解
Win7系统Visual Studio 2013配置OpenCV3.1图文详解 OpenCV3.1对硬件加速和移动开发的支持相对于老版本都有了较大改进,支持新的开发工具,更易于扩展,配置方式也比以前简 ...
- [内核编程] visual studio 2010配置驱动开发环境
visual studio 2010 配置驱动开发环境 ** 工具/材料 VS2010.WDK开发包 ** 配置过程 以下将讲述VS2010驱动开发环境的配置过程,至于必要软件的安装过程这里不再赘述 ...
- Windows 7 Visual Studio 2008配置OpenGL开发环境
Windows 7 Visual Studio 2008配置OpenGL开发环境 glut下载地址: http://www.opengl.org/resources/libraries/glut/gl ...
- Visual Studio Code配置GoLang开发环境
Visual Studio Code配置GoLang开发环境 在Visual Studio Code配置GoLang开发环境 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页: ...
- Visual Studio Code配置
Visual Studio Code 从1.23.0开始VS Code就不再默认提供各语言版本, 而是改为使用插件的方式提供语言包. 在插件商店搜索Chinese (Simplified), 安装. ...
- 在Visual Studio for Mac中使用fastlane管理iOS的provision
Xamarin开发中,最烦的就是provision的管理了. 全手工的话,要先创建一个key,上传后生成cert文件,再创建provision.如果在手机上调试,还要把手机加到provision中去. ...
- Visual Studio 2019 preview中体验C# 8.0新语法
准备工作: Visual Studio 2019 Preview版本中并没有包含所有的C# 8.0的新功能,但目前也有一些可以试用了.在开始之前,需要进行入两项设置: 将Framework设置为.ne ...
随机推荐
- IntelliJ IDEA —— Android开发的另一个选择
IntelliJ IDEA —— Android开发的另一个选择 很早就听过Eclipse的大名,但在我初学Java的时候,一位前辈推荐的IDE却是IntelliJ IDEA.因为之前用过JetBra ...
- [Elasticsearch] 集群工作 - 第二部分
本文翻译自Elasticsearch官方指南的life inside a cluster一章. 添加故障转移(Failover)功能 仅仅执行一个节点意味着可能存在着单点失败(Single point ...
- Microsoft .NET Pet Shop 简介
最初研究 .NET Pet Shop 的目的是用 Microsoft .NET 实现 Sun 主要的 J2EE 蓝图应用程序 Sun Java Pet Store 同样的应用程序功能. 根据用 .NE ...
- POJ2533 Longest Ordered Subsequence 【最长递增子序列】
Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 32192 Acc ...
- 使用Windows2003的IIS发布网站 - 进阶者系列 - 学习者系列文章
本系列文章目录:http://www.cnblogs.com/lzhdim/category/277150.html Windows 2003是一款不错的Windows服务器版本.在刚工作的前些年里, ...
- firefox os 该设备呼叫移动开发
1)话筒 权限:telephony api:navigator.moztelephony 参考链接:https://wiki.mozilla.org/WebAPI/WebTelephony 2) 扬声 ...
- html5 Geolocation(地理位置定位)学习
1.html5 Geolocation html5 Geolocation API 使用很简单,请求一个位置信息,如果用户同意,浏览器会返回一个位置信息,该位置是通过用户的底层设备(手机,电脑) 提供 ...
- 【C#版本详情回顾】C#4.0主要功能列表
诊断和性能 从 .NET Framework 4 开始,您可以获得每个应用程序域的处理器使用情况和内存使用情况估计值 通过托管承载 API.本机承载 API 以及 Windows 事件跟踪 (ETW) ...
- ajax的get请求
get和post是http请求方法最主要的两种方式. get: 先实现一个简单的get请求 index.html <!DOCTYPE html> <html lang="e ...
- Visual Studio 2013 IIS Explorer 停止调试继续访问站点
升级到2013后,在做调试的时候默认调试服务器是 IIS Explorer,当终止调试的时候再次访问调试站点时已经无法访问了.此时想预览一下感觉很不方便. 为了能够预览可以参考一下配置: Tools ...