使用 Visual Studio 2012,我想创建一个名为“Include Files”的 C++ 项目文件夹,它与众所周知的文件夹“Header Files”具有相同的特征。也就是说,Include Files 中的文件具有 cpi 扩展,将被解析出来用于 InteliSense,也可以进行预编译。
我能够创建文件夹,但其中的文件没有被解析。我尝试将类型设置为 C++ 头文件。似乎没有任何效果。当给定 hpp 扩展名并放入 Header Files 文件夹时,这些文件可以正常工作。
使用 Visual Studio 2012,我想创建一个名为“Include Files”的 C++ 项目文件夹,它与众所周知的文件夹“Header Files”具有相同的特征。也就是说,Include Files 中的文件具有 cpi 扩展,将被解析出来用于 InteliSense,也可以进行预编译。
我能够创建文件夹,但其中的文件没有被解析。我尝试将类型设置为 C++ 头文件。似乎没有任何效果。当给定 hpp 扩展名并放入 Header Files 文件夹时,这些文件可以正常工作。
如果它是 VS2010 之类的,则可以通过工具/选项/文本编辑器对话框选项来完成。在树项“文件扩展名”下,您可以添加自定义文件扩展名,并使用您选择的编辑体验对其进行处理。
为了模拟您的情况,我执行了以下操作:
照常进行。打开任何 CPI 文件,它现在应该显示与任何 c/cpp/h/hpp 等文件相同的语法突出显示和 IntelliSense 选项。
至少这就是我使用自定义文件扩展名的方式。听起来您已经按照您想要的方式过滤到子文件夹中。
这是有关我如何实现的一些原始信息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>