首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过EnvDTE获取AdditionalIncludeDirectories列表

通过EnvDTE获取AdditionalIncludeDirectories列表
EN

Stack Overflow用户
提问于 2012-12-18 01:45:32
回答 1查看 496关注 0票数 0

如何从c++项目中获取AdditionalIncludeDirectories列表?

我正在用c#编写一个外接程序,用于查看C++解决方案/项目,它需要这种类型的信息,以及来自Visual Studio的"INCLUDE“目录(我也很难获得这些目录,因为它们没有在系统环境变量中列出)。

有没有可以提供AdditionalIncludeDirectoriesProjectIncludeDirEnvDTE (或VCProject)选项?

EN

回答 1

Stack Overflow用户

发布于 2013-08-07 11:56:41

在VS2012外接程序中,您可以通过执行以下操作来获取AdditionalIncludeDirectories (请注意,这是针对每个项目配置的,而不是针对每个项目的):

您需要添加对"Microsoft.VisualStudio.VCProjectEngine“程序集的引用。

代码语言:javascript
复制
using Microsoft.VisualStudio.VCProjectEngine;

EnvDTE.Project project = null; // You get this project from somewhere
VCProject vcProject = project.Object as VCProject;
IEnumerable projectConfigurations = vcProject.Configurations as IEnumerable;
foreach (Object objectProjectConfig in projectConfigurations)
{
    VCConfiguration vcProjectConfig = objectProjectConfig as VCConfiguration;
    IEnumerable projectTools = vcProjectConfig.Tools as IEnumerable;
    foreach (Object objectProjectTool in projectTools)
    {
        VCCLCompilerTool compilerTool = objectProjectTool as VCCLCompilerTool;
        if (compilerTool != null)
        {
            string additionalIncludeDirs = compilerTool.AdditionalIncludeDirectories;
            break;
        }
    }
}

要从Visual Studio>中获取<"INCLUDE“目录,您可以‘请求’配置来评估VS "IcludePath”变量:

代码语言:javascript
复制
string includeDirs = vcProjectConfig.Evaluate("$(IncludePath)");
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13919266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档