VC++中的路径宏 (OutDir、ProjectDir、SolutionDir各种路径)

1.主输出文件目录为:配置属性->连接器->常规->输出文件

2.输出目录:配置属性->常规->输出目录

3. 基本名称 :只是文件名称,不带扩展名

4.配置属性->连接器->高级->导入库 :导入库指输出的静态库文件(*.lib),建立dll库的项目也会生成一个lib库,可在此设置lib库路径。

说明

$(RemoteMachine)

设置为“调试”属性页上“远程计算机”属性的值。有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置。

$(References)

以分号分隔的引用列表被添加到项目中。

$(ConfigurationName)

当前项目配置的名称(例如“Debug”)。

$(PlatformName)

当前项目平台的名称(例如“Win32”)。

$(Inherit)

指定在由项目生成系统所撰写的命令行中,继承的属性出现的顺序。默认情况下,继承的属性出现在当前属性的末尾。

$(NoInherit)

使任何将被继承的属性不被继承。若还要避免同级级别的计算,请使用 $(StopEvaluating)。使用 $(NoInherit)会导致对于同一属性忽略任何出现的 $(Inherit)。

$(StopEvaluating)

立即停止计算链中宏的计算。出现在 $(StopEvaluating) 之后的任何值将不出现在宏的计算值中。如果$(StopEvaluating) 在 $(Inherit) 之前,计算链中当前位置的继承值将不会连接到宏值。$(StopEvaluating)是 $(NoInherit) 的功能超集。

$(ParentName)

包含此项目项的项的名称。该名称将是父文件夹名称或项目名称。

$(RootNameSpace)

包含应用程序的命名空间(如果有)。

$(IntDir)

为中间文件指定的相对于项目目录的目录路径。它解析为“中间目录”属性的值。

$(OutDir)

输出文件目录的路径,相对于项目目录。这解析为“输出目录”属性的值。(配置属性->常规->输出目录)

$(DevEnvDir)

Visual Studio .NET 的安装目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。

$(InputDir)

输入文件的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。如果该项目是输入,则此宏等效于 $(ProjectDir)。

$(InputPath)

输入文件的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。如果该项目是输入,则此宏等效于 $(ProjectPath)。

$(InputName)

输入文件的基本名称。如果该项目是输入,则此宏等效于 $(ProjectName)。

$(InputFileName)

输入文件的文件名(定义为基本名称 + 文件扩展名)。如果该项目是输入,则此宏等效于 $(ProjectFileName)。

$(InputExt)

输入文件的文件扩展名。它在文件扩展名的前面包括“.”。如果该项目是输入,则此宏等效于 $(ProjectExt)。

$(ProjectDir)

项目的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。

$(ProjectPath)

项目的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。

$(ProjectName)

项目的基本名称。

$(ProjectFileName)

项目的文件名(定义为基本名称 + 文件扩展名)。

$(ProjectExt)

项目的文件扩展名。它在文件扩展名的前面包括“.”。

$(SolutionDir)

解决方案的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。

$(SolutionPath)

解决方案的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。

$(SolutionName)

解决方案的基本名称。

$(SolutionFileName)

解决方案的文件名(定义为基本名称 + 文件扩展名)。

$(SolutionExt)

解决方案的文件扩展名。它在文件扩展名的前面包括“.”。

$(TargetDir)

生成的主输出文件的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。(主输出文件目录为:配置属性->连接器->常规->输出文件)

$(TargetPath)

生成的主输出文件的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。

$(TargetName)

生成的主输出文件的基本名称。

$(TargetFileName)

生成的主输出文件的文件名(定义为基本名称 + 文件扩展名)。

$(TargetExt)

生成的主输出文件的文件扩展名。它在文件扩展名的前面包括“.”。

$(VSInstallDir)

安装 Visual Studio .NET 的目录。

$(VCInstallDir)

安装 Visual C++ .NET 的目录。

$(FrameworkDir)

安装 .NET Framework 的目录。

$(FrameworkVersion)

Visual Studio 使用的 .NET Framework 版本。与 $(FrameworkDir) 相结合,就是 Visual Studio 使用的 .NET Framework 版本的完整路径。

$(FrameworkSDKDir)

安装 .NET Framework SDK 的目录。.NET Framework SDK 可作为 Visual Studio .NET 的一部分安装,也可单独安装。

$(WebDeployPath)

从 Web 部署根到项目输出所属于的位置的相对路径。返回与 RelativePath 相同的值。

$(WebDeployRoot)

指向 <localhost> 位置的绝对路径。例如,c:\inetpub\wwwroot。

$(SafeParentName)

有效名称格式的直接父级的名称。例如,窗体是 .resx 文件的父级。

$(SafeInputName)

作为有效类名的文件的名称,但不包括文件扩展名。

$(SafeRootNamespace)

项目向导将在其中添加代码的命名空间名称。此命名空间名称将只包含在有效的 C++ 标识符中允许的字符。

$(FxCopDir)

fxcop.cmd 文件的路径。fxcop.cmd 文件不和所有的 Visual C++ 版本一起安装。

### 回答1: 好的,我可以为您提供一个使用 MongoDB 的 aggregate 语法来实现 $project、$match 和 $filter 操作的示例。假设您有一个名为 customers 的集合,其包含以下文档: ``` { "_id": 1, "name": "张三", "gender": "男", "age": 25, "hobbies": ["游泳", "跑步", "篮球"], "address": { "province": "广东", "city": "深圳", "district": "南山区" } }, { "_id": 2, "name": "李四", "gender": "女", "age": 30, "hobbies": ["唱歌", "跳舞", "阅读"], "address": { "province": "广东", "city": "广州", "district": "天河区" } }, { "_id": 3, "name": "王五", "gender": "男", "age": 28, "hobbies": ["爬山", "骑行", "旅游"], "address": { "province": "四川", "city": "成都", "district": "锦江区" } } ``` 以下是使用 aggregate 语法来展示出 list 的字段的示例代码: ```javascript db.customers.aggregate([ { $project: { _id: 0, // 隐藏 _id 字段 name: 1, age: 1, hobbies: 1 } }, { $match: { age: { $gte: 25 } // 过滤出年龄大于等于 25 岁的文档 } }, { $filter: { input: "$hobbies", as: "hobby", cond: { $ne: ["$$hobby", "篮球"] } // 过滤出不包含“篮球”这项爱好的数组 } } ]) ``` 运行以上代码会输出如下结果: ``` [ { "name": "张三", "age": 25, "hobbies": [ "游泳", "跑步" ] }, { "name": "李四", "age": 30, "hobbies": [ "唱歌", "跳舞", "阅读" ] }, { "name": "王五", "age": 28, "hobbies": [ "爬山", "骑行", "旅游" ] } ] ``` 希望这个示例能够帮助您理解如何使用 MongoDB 的 aggregate 语法来实现 $project、$match 和 $filter 等操作。 ### 回答2: 以下是一个使用MongoDB的aggregate操作的示例: 假设我们有一个"users"集合,每个文档包含用户的姓名,年龄和国家。我们希望使用aggregate操作来获取国家为"国"的用户列表,并且只展示姓名和年龄字段。 示例文档: ```javascript { "name": "张三", "age": 25, "country": "国" } { "name": "李四", "age": 30, "country": "美国" } { "name": "王五", "age": 35, "country": "国" } { "name": "赵六", "age": 40, "country": "英国" } ``` 以下是使用aggregate操作的代码示例: ```javascript db.users.aggregate([ { $match: { country: "国" } }, // 筛选国家为"国"的用户 { $project: { name: 1, age: 1 } } // 只展示姓名和年龄字段 ]) ``` 运行以上代码后,将会返回以下结果: ```javascript { "_id" : ObjectId("609536467f3ae408e9db4111"), "name" : "张三", "age" : 25 } { "_id" : ObjectId("609536467f3ae408e9db4113"), "name" : "王五", "age" : 35 } ``` 以上程序首先使用$match操作来筛选国家为"国"的用户,并将其传递给下一个操作符。接下来,使用$project操作符来指定需要展示的字段。在这个例子,我们指定了"name"和"age"字段,值为1表示包含在结果。其他未指定的字段将被忽略。 最后,aggregate操作返回符合条件的用户列表,包含"name"和"age"字段,即姓名和年龄字段的值。 ### 回答3: 在这个demo,我们将使用MongoDB的aggregate函数来展示如何使用$project,$match和$filter操作符,并展示list的字段。 首先,我们需要假设我们有一个名为"users"的集合,其包含以下字段:"_id","name","age","email"。 示例数据如下: [ { "_id": ObjectId("60b416b6c48a1d001fcd21e5"), "name": "张三", "age": 25, "email": "zhangsan@example.com" }, { "_id": ObjectId("60b416b6c48a1d001fcd21e6"), "name": "李四", "age": 30, "email": "lisi@example.com" }, { "_id": ObjectId("60b416b6c48a1d001fcd21e7"), "name": "王五", "age": 28, "email": "wangwu@example.com" } ] 现在,我们要使用aggregate函数来查询集合年龄大于等于28岁的用户,并只返回他们的姓名和电子邮件。 以下是使用aggregate函数进行查询的示例代码: db.users.aggregate([ { $match: { age: { $gte: 28 } } }, { $project: { _id: 0, name: 1, email: 1 } }, { $sort: { name: 1 } } ]) 以上代码将返回以下结果: [ { "name": "王五", "email": "wangwu@example.com" }, { "name": "李四", "email": "lisi@example.com" } ] 在这个示例,$match操作符用于筛选年龄大于等于28岁的用户。然后,$project操作符用于指定要返回的字段,其"_id"字段被排除在结果之外。最后,使用$sort操作符按照姓名字段的升序排列结果。 这就是一个使用$project,$match和$filter操作符并展示list字段的MongoDB的aggregate示例。希望这能对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值