如何使用EnvDTE获取VC项目的/ MP选项?

时间:2018-10-14 01:34:24

标签: visual-studio visual-c++ vsix envdte

我正在开发Visual Studio加载项以修改VC项目,并且我想获取/设置/ MP选项(多处理器编译选项)。 但是我似乎找不到要更改的属性。 / MP的属性在哪里?

2 个答案:

答案 0 :(得分:1)

我可以使用下面的代码获得MP选项。

p.GetEvaluatedPropertyValue("MultiProcessorCompilation");

答案 1 :(得分:-1)

对于VC ++项目,应通过C / C ++ |代码生成属性页中的“启用并行代码生成”设置将/Qpar switch传递给编译器。

要通过VS程序包以编程方式执行此操作,可以使用IVCRulePropertyStorage.GetEvaluatedPropertyValue方法。

例如,假设您已经拥有该项目的EnvDTE.Project接口:

   Project proj = GetSelectedProject();
   VCProject vcProject = (VCProject)proj.Object;
   IVCCollection configs = (IVCCollection)vcProject.Configurations;
   VCConfiguration firstConfig = (VCConfiguration)configs.Item(1);
   IVCCollection rules = firstConfig.Rules;

   IVCRulePropertyStorage p = rules.Item("CL");
   string isParallelCodeGenSet = p.GetEvaluatedPropertyValue("EnableParallelCodeGeneration");

请注意,编译器设置是特定于配置的,并且上面的代码段仅使用找到的第一个。因此,您需要从与您感兴趣的配置关联的每个规则中检索属性。

您应该查看一些其他链接:

Working with Visual Studio C++ Project Properties

How to read/write the new Visual C++ project properties

VCConfiguration Interface