在配置vs項目是,你可以看到vs給你提供了一些宏(macros),如,但卻找不到修改或添加宏的地方,在用google搜尋之後,我發現vs內建的宏是不能修改的,現在就還剩下一個問題,可不可以添加新的宏?
在webkit的工程中,你可以看到它添加了幾個新的宏,如中最後面幾個:
它是在設定檔裡面加的,怎麼樣在vs ide裡面加這些宏我還不知道。下面就是C:/cygwin/home/xufan/WebKit/WebKitLibraries/win/tools/vsprops/debug.vsprops裡面的內容,大家看一下加粗的部分就知道怎麼加了:
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioPropertySheet
ProjectType="Visual C++"
Version="8.00"
Name="debug"
>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="2"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<UserMacro
Name="WebKitConfigSuffix"
Value="_debug"
PerformEnvironmentSet="true"
/>
<UserMacro
Name="LibraryConfigSuffix"
Value=""
PerformEnvironmentSet="true"
/>
<UserMacro
Name="WebKitDLLConfigSuffix"
Value=""
/>
</VisualStudioPropertySheet>
下面是我在msdn找到的關於這些宏的解釋(http://msdn.microsoft.com/en-us/library/c02as0cs(VS.71).aspx):
Visual C++ Concepts: Building a C/C++ Program
Macros for Build Commands and Properties
You can use these macros anywhere in a project's Property Pages dialog box where strings are accepted. These macros are not case sensitive.
Macro
Description
$(RemoteMachine)
Set to the value of the Remote Machine property on the Debug property page. See Changing Project Settings for a C/C++ Debug Configuration for more information.
$(ConfigurationName)
The name of the current project configuration (for example, "Debug").
$(PlatformName)
The name of current project platform (for example, "Win32").
$(Inherit)
Specifies the order in which inherited properties appear in the command line composed by the project build system. By default, inherited properties appear at the end of the current property.1
$(NoInherit)
Causes any properties that would otherwise be inherited, to not be inherited. The use of $(NoInherit) causes any occurrences of$(Inherit) to be ignored for the same property.1
$(ParentName)
Name of the item containing this project item. This will be the parent folder name, or project name.
$(RootNameSpace)
The namespace, if any, containing the application.
$(IntDir)
Path to the directory specified for intermediate files relative to the project directory. This resolves to the value for the Intermediate Directory property.
$(OutDir)
Path to the output file directory, relative to the project directory. This resolves to the value for the Output Directory property.
$(DevEnvDir)
The installation directory of Visual Studio .NET (defined as drive + path); includes the trailing backslash '/'.
$(InputDir)
The directory of the input file (defined as drive + path); includes the trailing backslash '/'. If the project is the input, then this macro is equivalent to $(ProjectDir).
$(InputPath)
The absolute path name of the input file (defined as drive + path + base name + file extension). If the project is the input, then this macro is equivalent to $(ProjectPath).
$(InputName)
The base name of the input file. If the project is the input, then this macro is equivalent to $(ProjectName).
$(InputFileName)
The file name of the input file (defined as base name + file extension). If the project is the input, then this macro is equivalent to $(ProjectFileName).
$(InputExt)
The file extension of the input file. It includes the '.' before the file extension. If the project is the input, then this macro is equivalent to $(ProjectExt).
$(ProjectDir)
The directory of the project (defined as drive + path); includes the trailing backslash '/'.
$(ProjectPath)
The absolute path name of the project (defined as drive + path + base name + file extension).
$(ProjectName)
The base name of the project.
$(ProjectFileName)
The file name of the project (defined as base name + file extension).
$(ProjectExt)
The file extension of the project. It includes the '.' before the file extension.
$(SolutionDir)
The directory of the solution (defined as drive + path); includes the trailing backslash '/'.
$(SolutionPath)
The absolute path name of the solution (defined as drive + path + base name + file extension).
$(SolutionName)
The base name of the solution.
$(SolutionFileName)
The file name of the solution (defined as base name + file extension).
$(SolutionExt)
The file extension of the solution. It includes the '.' before the file extension.
$(TargetDir)
The directory of the primary output file for the build (defined as drive + path); includes the trailing backslash '/'.
$(TargetPath)
The absolute path name of the primary output file for the build (defined as drive + path + base name + file extension).
$(TargetName)
The base name of the primary output file for the build.
$(TargetFileName)
The file name of the primary output file for the build (defined as base name + file extension).
$(TargetExt)
The file extension of the primary output file for the build. It includes the '.' before the file extension.
$(VSInstallDir)
The directory into which you installed Visual Studio .NET.
$(VCInstallDir)
The directory into which you installed Visual C++ .NET.
$(FrameworkDir)
The directory into which the .NET Framework was installed.
$(FrameworkVersion)
The version of the .NET Framework used by Visual Studio. Combined with $(FrameworkDir), the full path to the version of the .NET Framework use by Visual Studio.
$(FrameworkSDKDir)
The directory into which you installed the .NET Framework SDK. The .NET Framework SDK could have been installed as part of Visual Studio .NET or separately.
$(WebDeployPath)
The relative path from the web deployment root to where the project outputs belong. Returns the same value as RelativePath.
$(WebDeployRoot)
The absolute path to the location of . For example, c:/inetpub/wwwroot.
$(SafeParentName)
The name of the immediate parent in valid name format. For example, a form is the parent of a .resx file.
$(SafeInputName)
The name of the file as a valid class name, minus file extension.
1. Use the Command Line Property Page for the property to see how properties are inherited. See Specifying Project Settings with Property Pages for more information on property inheritance. See Using $(Inherit) and $(NoInherit) for usage examples.
See Also
Building C++ Projects in Visual Studio