您的位置:首页 > 其它

Visual Studio工程里的自定义宏

2015-04-06 14:40 113 查看
在研究FreeSWITCH源码时,经常会看到有一些自定义的宏。例如下图中的OpenSSLVersion。



我试着寻找配置这些宏的地方,但没找到。后来在网上搜索了一番,好像得直接编辑vcxproj文件。

因此我就试着查看了vcxproj文件。我用notepad打开了Download OPENSSL工程的vcxproj文件。文件中发现了如下一些内容:

<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\w32\openssl-version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\w32\openssl-version.props" />
</ImportGroup>
这里指示了另外一个文件:openssl-version.props。

因此我又打开了openssl-version.props文件。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros">
<OpenSSLVersion>1.0.1h</OpenSSLVersion>
</PropertyGroup>
<PropertyGroup>
<OpenSSLVersionImported>true</OpenSSLVersionImported>
</PropertyGroup>
<PropertyGroup />
<ItemDefinitionGroup />
<ItemGroup>
<BuildMacro Include="OpenSSLVersion">
<Value>$(OpenSSLVersion)</Value>
</BuildMacro>
</ItemGroup>
</Project>
显然这是一个XML文件。这里出现了刚才那个截图中的OpenSSLVersion宏以及它的值“1.0.1h”。

也就是说,每个工程里需要的宏都由一个XML的配置文件提供,并且在工程的vcxproj文件里指向这个配置文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: