VC include 路径解析

右键一个Project,可以发现有两个地方设置Include的相关目录:

1. VC++ Directories -> Include Directories
2. C/C++ -> General -> Additional Include Directories

 

不知道具体有什么区别,后在MSDN上得到答案:

“VC++ Directories -> Include Directories” : Directory settings displayed in the window are the directories that Visual Studio will search for include files referred to in your source code files. Corresponds to environment variable INCLUDE. More information : http://msdn.microsoft.com/en-us/library/t9az1d21(v=vs.80).aspx

 

“C/C++ -> General -> Additional Include Directories”: The directory to be added to the list of directories searched for include files. More information : http://msdn.microsoft.com/en-us/library/73f9s62w(v=vs.80).aspx

 

下面那个链接讲的比较清楚了:

The compiler searches for directories in the following order:

1.Directories containing the source file.

2.Directories specified with the /I option, in the order that CL encounters them.

3.Directories specified in the INCLUDE environment variable.

 

order2中的/I是由C/C++ -> General -> Additional Include Directories设置的。

order3中的INCLUDE是由VC++ Directories -> Include Directories设置的。




今天发现一个不错的帖子。转到自己的博客,收藏。

 

要了解vc中使用#include命令包含头文件所搜寻的路径,必须先了解vc中的几种路径:

1. 系统路径

系统路径在vc中是"Tools->Options->Directories"中"Include files"指定的路径。

打开此对话框会发现默认有这几条路径:

C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE

C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE

C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE

我们可以在这里添加,这样我们自己添加的路径也会成为系统路径。添加的格式必须按照上面来写。

2. 当前路径

当前路径是指vc工程中工程文件所在的路径,即.dsw文件所在路径。

网上有很多朋友说,当前路径是指.cpp文件所在路径,经过测试,这个说法也是正确的。但是使用vc编译时,是不正确的。

3. 附加路径

附加路径是指在"Project->Settings->C/C++->Preprocessor->Additional include directories "中指定的路径。

此路径默认为空,我们可以在此处填写需要路径,比如:在此处填入"C:\123\",(不要引号),那么附加路径就会变成"C:\123\" 。

上面的1,3路径,我们均可以自己编辑。在编辑过程中,可以使用绝对路径,也可以使用相对路径。

比如,在添加系统路径时,可以这样填写:

 .\SRC\  这样写表示,当前目录中的SRC文件夹;

 ..\SRC\  这样写表示,当前目录的上一层目录中SRC文件夹;

 ...\SRC\ 这样写表示,当前目录下  ..\SRC\\ 路径,当然这种写法已经和第一种重叠了。

这种相对路径的写法,vc会自动帮我们转化为绝对路径。

在添加附加路径时,其相对路径的写法和系统路径是一致的。

在vc中使用#include 命令,有三种形式:

1. #include <file.h>

vc执行这条指令时,它会在系统目录中去查找 file.h 文件。

在此条码命令中,vc不会去当前路径和附加路径中查找文件。

2. #include "file.h"

vc执行这条指令时,它首先会搜索附加路径,如果没有则会搜索系统路径,如果还没有则会去搜索当前路径。

3. #include "directory\file.h"

vc执行这条指令时,它会去指定的路径去查找文件,如果没找到,它不会继续查找。 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: VC6.0是一种老版本的Visual C++编译环境,相对较老,因此对于JSON解析的支持可能会有一定的限制。 在VC6.0中进行JSON解析,一种常见的方式是使用第三方库,例如json-cpp或者jsoncpp。这些库提供了解析和生成JSON数据的功能,能够方便地处理JSON格式数据。 使用这些库进行JSON解析的步骤大致如下: 1. 首先,需要在工程中链接相应的JSON库文件,这可以通过在工程属性中设置库文件的路径来实现。 2. 接下来,需要在代码中引入相关的头文件,以便可以使用库中提供的JSON解析函数和类。 3. 然后,需要读取JSON数据,可以通过打开相应的JSON文件或者从网络接口获取JSON数据。 4. 使用库提供的JSON解析函数或者类对JSON数据进行解析,将其转化为可供程序处理的数据结构。例如,可以将JSON对象解析为C++对象、将JSON数组解析为C++向量等等。 5. 最后,根据具体的需求,可以通过遍历解析后的数据结构来获取JSON中的具体值,或者在程序中进行相应的处理。 需要注意的是,由于VC6.0是比较老的版本,因此第三方库的支持可能会有一些限制或者需要额外的配置。在使用第三方库进行JSON解析时,可能需要手动链接相关的库文件、设置相应的头文件包含路径等。 总之,通过使用第三方库,可以在VC6.0环境下进行JSON解析,从而方便地处理JSON格式的数据。 ### 回答2: VC6.0是一款老旧的集成开发环境,它不原生支持JSON解析。但我们可以借助第三方库来实现JSON解析的功能。 目前比较流行且使用简单的JSON解析库有JsonCpp和RapidJSON。 1. JsonCpp是一个开源的C++ JSON解析库,它不仅能够在VC6.0中使用,还可以在其他版本的VC中使用。你可以在其官方网站上下载源代码,然后将其添加到你的项目中。使用JsonCpp,你可以通过调用它提供的API来解析JSON数据,获取其中的键值对。 2. RapidJSON是另一个高性能的C++ JSON解析库,它也可以在VC6.0中使用。你可以在RapidJSON的GitHub仓库中下载它的源代码,并将其添加到你的项目中。使用RapidJSON,你可以通过调用它提供的API来解析JSON数据,并可以非常方便地操作其中的数据。 使用这两个库,你只需要按照它们的文档说明进行配置和调用即可实现JSON解析的功能。 然而,由于VC6.0是一个古老的版本,它的编译器可能不兼容一些新的C++特性和语法。在使用这些库时,你可能需要做一些额外的调整和修改,以确保代码能够正常编译和运行。 综上所述,尽管VC6.0不原生支持JSON解析,但我们可以借助第三方库如JsonCpp和RapidJSON来实现JSON解析的功能。希望我的回答对你有帮助。 ### 回答3: VC6.0是微软推出的一种集成开发环境(IDE),主要用于C/C++编程,不支持对JSON格式数据的直接解析。然而,我们可以借助第三方库来实现JSON解析。 在VC6.0中,我们可以使用第三方库(如JsonCpp、RapidJSON等)来解析JSON数据。这些库提供了便捷的API和功能,可以帮助我们在C++程序中解析和操作JSON格式数据。 首先,我们需要将所选的JSON解析库添加到VC6.0项目中。在项目属性中的"附加包含目录"中添加正确的头文件路径,在"附加库目录"中添加相应的库文件路径。然后,在代码中引入相关的头文件,并使用库提供的API进行JSON解析。 举例来说,如果我们选择使用JsonCpp库,首先需要包含头文件: #include "json/json.h" 然后可以通过以下代码片段解析JSON数据: // 创建Json::Value对象 Json::Value root; // 解析JSON字符串 Json::CharReaderBuilder readerBuilder; Json::CharReader* reader = readerBuilder.newCharReader(); std::string jsonString = (...) // JSON字符串 std::string errors; bool parsingSuccessful = reader->parse(jsonString.c_str(), jsonString.c_str() + jsonString.size(), &root, &errors); // 检查解析结果 if (parsingSuccessful) { // 解析成功,可以对JSON数据进行操作 // 如获取字段值、遍历数组等 } else { // 解析失败,可以处理错误信息 std::cout << "JSON解析失败:" << errors << std::endl; } 通过以上代码,我们可以成功解析JSON数据,并可以根据需要进行进一步的操作。需要注意的是,在使用第三方库时,可能需要根据实际情况调整相关代码,以确保其能够适配VC6.0环境。 总结起来,虽然VC6.0本身不支持对JSON数据的直接解析,但我们可以借助第三方库实现JSON解析操作。在选择和使用第三方库时,需要根据项目需求和VC6.0版本的限制进行适配。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值