1

使用 Visual Studio 2012,我想创建一个名为“Include Files”的 C++ 项目文件夹,它与众所周知的文件夹“Header Files”具有相同的特征。也就是说,Include Files 中的文件具有 cpi 扩展,将被解析出来用于 InteliSense,也可以进行预编译。

我能够创建文件夹,但其中的文件没有被解析。我尝试将类型设置为 C++ 头文件。似乎没有任何效果。当给定 hpp 扩展名并放入 Header Files 文件夹时,这些文件可以正常工作。

4

2 回答 2

2

如果它是 VS2010 之类的,则可以通过工具/选项/文本编辑器对话框选项来完成。在树项“文件扩展名”下,您可以添加自定义文件扩展名,并使用您选择的编辑体验对其进行处理。

为了模拟您的情况,我执行了以下操作:

  1. 打开工具/选项/文本编辑器选项屏幕。
  2. 在右窗格中,在“扩展名:”框中键入“cpi”。
  3. 为编辑器选择“Microsoft Visual C++”。
  4. 选择添加/应用以将其添加到自定义扩展列表。

照常进行。打开任何 CPI 文件,它现在应该显示与任何 c/cpp/h/hpp 等文件相同的语法突出显示和 IntelliSense 选项。

至少这就是我使用自定义文件扩展名的方式。听起来您已经按照您想要的方式过滤到子文件夹中。

于 2012-10-01T23:18:28.147 回答
0

这是有关我如何实现的一些原始信息CPI,自定义文件扩展名类似于.h。我的任务是创建一个动态创建 Visual Studio 2012 C++ 解决方案和项目的程序。这是必需的,因为 VS 模板不适用于 C++,只能用于 .Net。

我创建了一个 Visual Basic 脚本文件来创建解决方案和项目文件。它将以下 XML 插入到自定义 vcxproj 文件中。None除了ClCompile 或 Include之外,还有 XML 标记。该None标签似乎适用于我的目的;启用解析、智能感知和上下文菜单选项。

   <ItemGroup>
        [Do following pattern for each CPI file]
        <None Include="MyCPI.CPI">
            <FileType>CppHeader</FileType>
        </None>
    </ItemGroup>

我创建了以下 XML 并插入到 vcxproj.filters 文件中:

[在文件开头的 ItemGroup 中插入。GUID 与 C++ 头文件相同。我不确定那是什么意思。]

<Filter Include="Include Files">
      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
      <Extensions>cpi</Extensions>
</Filter>

<ItemGroup>
    [Do following pattern for each CPI file]
    <None Include="MyCPI.CPI">
        <Filter>++Include Files</Filter>
    </None>
</ItemGroup>
于 2012-10-02T21:28:49.057 回答