Visual Studio工程里的自定义宏

在研究FreeSWITCH源码时,经常会看到有一些自定义的宏。例如下图中的OpenSSLVersion。

Visual Studio工程里的自定义宏_第1张图片

我试着寻找配置这些宏的地方,但没找到。后来在网上搜索了一番,好像得直接编辑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文件里指向这个配置文件。





你可能感兴趣的:(Studio,Visual)