[原]定义不同平台通用的宏

mac2025-01-16  10

有时候我们希望定义同一个宏,但是在选择不同平台进行编译的时候希望该宏的值指向不同的值。类似vs自带的Platform宏,在win32平台编译的时候,该宏指向win32,在选择x64平台进行编译的时候,该宏指向x64。如下图:

    如果我们想定义一个宏,在win32平台下指向x86 在x64平台下指向x64 该多好啊!!!(比vs提供的宏更符合我们的需求)! 下面就是如何做(以vs2010sp1为例): 通过View ->Property Manager打开属性管理器。   红框部分就是我们需要编辑的文件。先双击任意一个Microsoft.Cpp.Win32.user 选择User Manager 然后点击Add macro,就可以添加一个只在win32平台下使用的宏了。 注意:通过修改Microsoft.Cpp.Win32.user来添加的宏只在本机有效,因为修改的是vs路径下的对应文件。     同理我们可以编辑x64平台下的宏,如下图   好,编辑好后保存,我们可以利用刚刚查看vs自带的Platform宏一样 查看我们自定义的宏,以win32平台为例截图如下:   注意:Configuration是All Configurations 也就是说本次改动对Debug Release都有效!是不是很爽!   说明:我们也可以添加自己的Property sheet来根据自己的需求来更加个性化的定制宏! 比如还想根据configuration和platform一起决定一个宏到底是指向什么值! 那么我们可以通过添加自定义的Property Sheet来解决!方法和刚刚差不多,还是打开Property Manager,上次我们是直接修改的vs提供的Property Sheet,这次我们要添加自己的Property Sheet。我们可以在工程名上右键添加,如下图   注意:在工程名字上添加的Property Sheet是针对所有平台 所有configuration的   我们也可以在某个子项下添加比如 Debug | Win32下。  效果如下:   我们也可以添加一个已经存在的Property Sheet。在右键的时候选择Add Existing Property Sheet即可选择一个。 通过这个办法我们可以把刚刚配置好的DebugWin32 Property Sheet 插入到Release | Win32下,那么就可以配置出专门针对Win32使用的Property Sheet了,各种组合任大家发挥!好了,啰嗦了这么多,希望对大家有用!   最后提醒:vs对Property Sheet进行搜索的顺序貌似是从下往上的,比如针对Debug | Win32这个,会先搜Core Window Library,再搜Unicode Support 再搜Application,最后才是我们最后添加的DebugWin32。如果我们想在AllSheet中使用DebugWin32中的宏,那么我们就要保证DebugWin32在AllSheet的下面!应该很好理解吧!Done!   参考网址: http://stackoverflow.com/questions/25810603/in-visual-studio-projects-can-a-user-macro-be-set-across-multiple-configuration                    

来自为知笔记(Wiz)

最新回复(0)