vs(visual stuiod)中vc++工程的Filter和Folder及vcxproj知识

这篇具有很好参考价值的文章主要介绍了vs(visual stuiod)中vc++工程的Filter和Folder及vcxproj知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vs中创建Filter

在一个新项目中右键 - Add - New,默认只有一选项 New Filter。

创建出来的Filter可以理解为是VS的过滤器(虚拟目录),它不会在本地的磁盘上新建目录,而是修改了.filters文件,把这种目录关系记录在.filters文件中。

vs(visual stuiod)中vc++工程的Filter和Folder及vcxproj知识

新建一个vc++ project,默认有这几种Filter,当然在实际的项目中我们会新建很多Filter用来目录分类,也可以对默认的Filter进行改名。

vs(visual stuiod)中vc++工程的Filter和Folder及vcxproj知识


vs中创建文件夹

点击菜单栏 - Project - Show All File,然后再切到解决方案浏览器,右键 - New,就会出现New Folder,不过随之New Filter选项也消失了。

vs(visual stuiod)中vc++工程的Filter和Folder及vcxproj知识

划重点:此种方式创建的文件夹是和project,也就是vcxproj同级的。如果移动了目录,比如源码不是vcxproj的子目录下就需要注意。


添加已有的文件夹/目录

通过Add - Existing Item只能添加具体的文件,也就是添加完之后在vs的中只会显示添加的cpp文件而无法显示文件夹,但是vcxproj文件中却记录了文件的路径。

<ClCompile Include="..\..\msvcpp\collection\listTest.cpp" />

ChatGPT给出的答案是针对vs的,而并非vc++工程。


博客园找到一个答案,实践是可行:

  • 将文件夹拷贝到【vcxproj文件同目录】

  • 解决方案右上有个【显示所有文件】的按钮

  • 在需要添加的目录上右击 - 选择 [Include In Project]即可

不过这种方式添加的目录,在取消【显示所有的文件之后】还是统一的显示在了Source Files或Header Files下。

但是由于我把sln移动了目录,也就是sln和源文件并不在同一级目录下,所以显示所有文件,只会显示vcxproj所在目录下的所有文件,无法显示其它文件夹下的文件。


vc++工程中文件夹(Folder)和Filter

通过上面的实践知识可以知道,对于vc++工程,创建目录和Filter需要同步,即创建一个Folder,然后再创建一个同名的Filter。

同样是在vs中的c#工程则没有Filter只有Folder。


大型项目是如何组织的?

对于一些大型的c++工程,很可能出现N多源码都在一个目录下,但是在vs中创建了多个Filter。

也不一定使用vs自带的几种Filter,比如会把.h和cpp文件放在同一个Filter下,即Filter当作虚拟文件夹来使用


读懂vs工程文件vcxproj和filter

在每一个vc++ project的目录下,都有这样2个文件

  • project_name.vxcproj
  • project_name.vxcproj.filters

这两个文件的格式都类似于xml


相同点:cpp文件放在ClCompile节点中,而hpp/h文件则放在ClInclude节点中

filter文件

filter文件内容如下,主要是记录工程的filter组织关系。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <Filter Include="Source Files">
      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
    </Filter>
    <Filter Include="Header Files">
      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
    </Filter>
    <Filter Include="Resource Files">
      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
    </Filter>
  </ItemGroup>
  <ItemGroup>
    <Text Include="..\..\msvcpp\ReadMe.txt" />
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="..\..\msvcpp\stdafx.h">
      <Filter>Header Files</Filter>
    </ClInclude>
  </ItemGroup>
  <ItemGroup>
    <ClCompile Include="..\..\msvcpp\stdafx.cpp">
      <Filter>Source Files</Filter>
    </ClCompile>
    <ClCompile Include="..\..\msvcpp\collection\listTest.cpp">
      <Filter>Source Files</Filter>
    </ClCompile>
  </ItemGroup>
</Project>

vcxproj文件

除了ClInclude和ClCompile,vcxproj则还包含了一些编译选项及平台的配置,可以这样说在vs - 项目 - 右键 - 属性页全部设置,全部都在此文件中。

vs(visual stuiod)中vc++工程的Filter和Folder及vcxproj知识

下面摘录此文件中的一些片段:

应用类型,及toolset

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>true</UseDebugLibraries>
    <PlatformToolset>v143</PlatformToolset>
    <CharacterSet>Unicode</CharacterSet>
  </PropertyGroup>

编译选项,宏定义等等

  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <ClCompile>
      <PrecompiledHeader>Use</PrecompiledHeader>
      <WarningLevel>Level3</WarningLevel>
      <Optimization>Disabled</Optimization>
      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <SDLCheck>true</SDLCheck>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
    </Link>
  </ItemDefinitionGroup>

所包含的文件,只不过这里并无Filter信息,而是文件在磁盘上的相对路径,如下:

 <ItemGroup>
    <Text Include="..\..\msvcpp\ReadMe.txt" />
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="..\..\msvcpp\stdafx.h" />
    <ClInclude Include="..\..\msvcpp\targetver.h" />
  </ItemGroup>
  <ItemGroup>
    <ClCompile Include="..\..\msvcpp\collection\listTest.cpp" />
    <ClCompile Include="..\..\msvcpp\msvcpp.cpp" />
    <ClCompile Include="..\..\msvcpp\stdafx.cpp">
      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
    </ClCompile>
    <ClCompile Include="..\..\msvcpp\strTest.cpp" />
  </ItemGroup>

.vcxproj.user

在 Visual Studio 中,.user 文件是用来存储用户自定义设置的文件。这些设置包括项目文件中未包含的 IDE 设置,例如编辑器字体和颜色、自定义工具栏和窗口布局等等。用户可以通过修改 .user 文件来自定义这些设置,而不会影响项目文件或者其他用户的设置。每个用户都可以拥有自己的 .user 文件。

比如上文的显示Filter还是全部的设置就包含在此文件中文章来源地址https://www.toymoban.com/news/detail-616048.html

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ShowAllFiles>false</ShowAllFiles>
  </PropertyGroup>
</Project>

到了这里,关于vs(visual stuiod)中vc++工程的Filter和Folder及vcxproj知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决VS2022每次创建新工程都需要重新配置opencv的问题

    解决VS2022每次创建新工程都需要重新配置opencv的问题 事情起因是我按照网上其他配置opencv的教程配置opencv后,每次重新创建编程项目都需要再重新配置一遍opencv,搜了下解决方法也没有得到有效解决,最后参照老版本vs配置opencv的方法,终于解决了,解决方法如下: 首先问题

    2024年02月10日
    浏览(33)
  • Visual Studio 2019 C# 上位机入门(1):如何创建工程编写一个简单应用

    Visual Studio 2019下载安装步骤可以看:https://blog.csdn.net/weixin_44788542/article/details/114271126 这里不赘述,默认电脑上已经安装好了。 1、打开安装好的Visual Studio后,选择创建新项目。 2、找到选择C#下面的Windows 窗体应用,然后下一步起名和文件存放位置 如果找不到Windows 窗体应用,

    2024年02月05日
    浏览(40)
  • VC9、VC10、VC11等等各对应什么版本的Visual Studio,以及含义

    MS VC++ 15.0 _MSC_VER = 1910 (Visual Studio 2017) MS VC++ 14.0 _MSC_VER = 1900 (Visual Studio 2015) MS VC++ 12.0 _MSC_VER = 1800 (VisualStudio 2013) MS VC++ 11.0 _MSC_VER = 1700 (VisualStudio 2012) MS VC++ 10.0 _MSC_VER = 1600(VisualStudio 2010) MS VC++ 9.0 _MSC_VER = 1500(VisualStudio 2008) MS VC++ 8.0 _MSC_VER = 1400(VisualStudio 2005) MS VC++ 7.1 _MSC_VER

    2024年02月13日
    浏览(30)
  • vc visual studio旧 版本 下载

    vc visual studio旧 版本 下载 https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/ msvcp140D.dll mfc140d.dll mfc140d.dll https://visualstudio.microsoft.com/zh-hans/downloads/ 3.特殊需求:离线下载(文件较大) dos命令:如下载社区版本; #如果下载中英文版本就写两个语言,如果只下载一个就只写一个; .v

    2024年02月03日
    浏览(37)
  • Microsoft Visual C++下载,VC++下载

    Microsoft Visual C++ 2019 v14.28.29617 Microsoft Visual C++ Redistributable(系统运行库,简称MSVC,VB/VC)是Windows操作系统应用程序的基础类型库组件。 Microsoft Visual C++运行库,Windows系统装机必备组件,这是官方版安装包。 Microsoft Visual C++ 2019为创建基于微软 Windows 和基于 Microsoft .NET 的应用

    2024年02月12日
    浏览(54)
  • Visual C++(VC)6.0安装教程

    亲爱滴同学们 今天来安装VC 6.0 安装包可以直接去我的主页资源里下载安装包哦 或者私信我😎 Visual C++ 6.0,简称VC或者VC6.0,是微软的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。Visual C++是一个功能强大的可视化软件开发工具。 下面就是详细的安

    2024年02月14日
    浏览(28)
  • vs版本与vc版本的对应关系

    Visual Studio 6 : vc6 Visual Studio 2003 : vc7 Visual Studio 2005 : vc8 Visual Studio 2008 : vc9 Visual Studio 2010 : vc10 Visual Studio 2012 : vc11 Visual Studio 2013 : vc12 Visual Studio 2015 : vc14 Visual Studio 2017 : vc15 Visual Studio 2019 : vc16 Visual Studio 2019 : vc17

    2024年02月04日
    浏览(24)
  • 使用“Cocos引擎”创建的cpp工程如何在VS中调试Cocos2d-x源码

    前段时间Cocos2d-x更新了一个Cocos引擎,这是一个集合源码,IDE,Studio这一家老小的整合包,我们可以使用这个Cocos引擎来创建我们的项目。 在Cocos2d-x被整合到Cocos引擎之前,我们可以不那么方便地在我们创建的工程里调试Cocos2d-x的代码,当我们使用了整合后的Cocos引擎,调试

    2024年02月12日
    浏览(44)
  • Microsoft微软官方Win10 visual c++(vc++2019)运行库下载

    最新支持Visual C++ 可再发行程序包下载 | Microsoft Docs 本文列出了最新版本的包的下载Visual C++ 可再发行程序包链接。 https://support.microsoft.com/zh-cn/help/2977003/the-latest-supported-visual-c-downloads 安装后可以解决某些软件(如QQ)运行时 .dll 文件报错问题

    2024年02月16日
    浏览(46)
  • Windows10使用OrbSlam3-VS2017-VC12版本

    OrbSlam3集成了IMU信息,可用以VIO融合重建。参考这哥们的地址,依据GitHub上的介绍git clone --recursive 之后编译即可 ORBSLAM3 Win10 VS2017 配置简明指南_滥觞LanShang的博客-CSDN博客_orbslam3 windows Git地址:GitHub - chanho-code/ORB-SLAM3forWindows: ORB-SLAM3 for Windows Platform 编译过程: 1.使用sourcetree

    2024年02月09日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包