visual studio2019项目中引入头文件失效问题的解决

这几天把项目整理一下,但在引入头文件过程中非常曲折。

项目本身写好了可以运行,但是项目结构是这样的:
所以想把功能模块化,同一类协议功能放在一起。
在这里插入图片描述

于是建包,创建文件,导入头文件:
在这里插入图片描述
在新创建的文件中直接引入自己新创建的头文件是没问题的(没有红色波浪线)
在这里插入图片描述
但是在原来文件中引入我新创建的文件就有错误,总是引入不上:
在这里插入图片描述

后来,在反复尝试,折腾了两天才整明白咋回事

过程是:在解决方案中来回移动文件、创建文件,还有在资源管理器中尝试来回移动文件、创建文件。

最后发现原因:

  1. 解决方案中的文件的所在文件夹是假的,只是逻辑上存在,实际没有(资源管理器中没有)
  2. 原来的文件引用新创建的文件不成功是因为,文件夹层级问题(我也是笑哭了我*)

在解决方案中创建的 新建项 是直接在项目根目录中创建:
在这里插入图片描述
而原来文件却在src文件夹下的文件夹下:
在这里插入图片描述
在这里插入图片描述
所以,引入时,多加层级目录就好了。

在这里插入图片描述
在这里插入图片描述
ok,引入之后,报错问题消失。

最后,这个问题是编辑器的锅还是我的锅呢?这个错误真气死人了,谁能想到编辑器是这样呢,搞了一天才找到。

好在找到原因,也算是经验了。

注:因为是对于特定项目,所以这篇文章记录的解决办法只是解决头文件失效问题的众多解决办法之一。如果此种方法行不通,肯定还会有其它原因(其它很多博客也有所介绍)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/545166.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构:详解【链表】的实现(单向链表+双向链表)

目录 一,前言二 ,有关链表的概念,结构和分类三,无头单向非循环链表(单链表)1.单链表的功能2.单链表功能的实现3.完整代码 四,带头双向循环链表(双链表)1.单链表与双链表的…

代码随想录算法训练营三刷day25 | 回溯 之 216.组合总和III 17.电话号码的字母组合

三刷day25 216.组合总和III剪枝 17.电话号码的字母组合 216.组合总和III 题目链接 解题思路: 选取过程如图: 图中,可以看出,只有最后取到集合(1,3)和为4 符合条件。 递归三部曲 确定递归函数参…

科研学习|论文解读——交替协同注意力网络下基于属性的情感分析 (IPM, 2019)

论文题目 Aspect-based sentiment analysis with alternating coattention networks 摘要 基于属性的情感分析(ABSA)旨在预测给定文本中特定目标的情感极性。近年来,为了获得情感分类任务中更有效的特征表示,人们对利用注意力网络…

【学习学习】学习金字塔

学习金字塔(Cone of Learning),全称学习吸收率金字塔,是一种现代学习方式的理论。网上流传它是美国缅因州的国家训练实验室(National Training Laboratories)研究成果,用数字形式形象显示了采用…

19. UE5 RPG使用GameplayEffect的Attribute Based Modifiers

前几篇文章我也说了GE的基础使用,但是,对一些属性的应用没有述说,后续,我将一点一点的将它们如何使用书写下来。 这一篇,主要就讲解一下Attribute Based Modifiers使用,先说一下它的应用场景,一…

蓝桥集训之糖果

蓝桥集训之糖果 核心思想:dfs 剪枝 重复覆盖问题 暴搜 直到所有列都覆盖优化: 1.迭代加深 答案从1开始 2.逻辑简化 每次从可选行数最少得一列开始 3.可行性剪枝 添加估值函数h(),表示至少还需要选几行 与剩余行数的大小比较 4.**位运算 **将每包糖果…

32程序结构学习

初始化代码 void LED_GPIO_Config(void) { /*定义一个GPIO_InitTypeDef类型的结构体*/GPIO_InitTypeDef GPIO_InitStructure;/*开启GPIOC的外设时钟*/RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE); /*选择要控制的GPIOC引脚*/ GPIO_InitStructur…

软件测试 自动化测试selenium 基础篇

文章目录 1. 什么是自动化测试?1.1 自动化分类 2. 什么是 Selenium ?3. 为什么使用 Selenium ?4. Selenium 工作原理5. Selenium 环境搭建 1. 什么是自动化测试? 将人工要做的测试工作进行转换,让代码去执行测试工作 …

Redis和Mysql的数据一致性问题

在高并发的场景下,大量的请求直接访问Mysql很容易造成性能问题。所以我们都会用Redis来做数据的缓存,削减对数据库的请求的频率。 但是,Mysql和Redis是两种不同的数据库,如何保证不同数据库之间数据的一致性就非常关键了。 1、导…

深度学习-解读GoogleNet深度学习网络

深度学习-解读GoogleNet深度学习网络 深度学习中,经典网络引领一波又一波的技术革命,从LetNet到当前最火的GPT所用的Transformer,它们把AI技术不断推向高潮。2012年AlexNet大放异彩,它把深度学习技术引领第一个高峰,打…

数据结构的概念大合集01(含数据结构的基本定义,算法及其描述)

概念大合集01 1、数据结构基础的定义2、数据结构2.1 数据元素之间关系的集合2.2数据结构的三要素2.2.1数据的逻辑结构2.2.2数据的存储(物理)结构2.2.3数据的运算 3、数据类型4、抽象数据类型类型(ADT)5、算法及其描述5.1算法的5个…

@RequestParam、@PathVariable、@RequestBody

1、中文翻译 RequestParam-请求参数、PathVariable-路径变量、RequestBody请求体 2、作用: Controller中获取前端传递的参数 3、从注解本身角度分析 3.1、PathVariable:路径变量 通过 PathVariable 可以将URL中占位符参数{xxx}绑定到处理器类的方法形…