gpt4 book ai didi

c++ - IntelliSense 包含不应包含的内容

转载 作者:行者123 更新时间:2023-11-28 01:03:24 27 4
gpt4 key购买 nike

我正在 Visual Studio 2010 中开发一个项目。我的项目不应该仅限于 Windows,但是,其中一个文件依赖于操作系统。

因此,我有 #include <windows.h>仅在一个 .cpp 文件中。没有其他文件包含此 .cpp 文件。因此,从逻辑上讲,windows.h header 应该对解决方案的其余部分不可见。

这意味着除了那个 .cpp 之外,我的所有文件中的 Windows 库中的声明都没有任何名称冲突,而且我的项目编译得很好。

但是,IntelliSense 一直坚持说我有名称冲突。当我按下 Ctrl+Space , IntelliSense 建议来自 windows.h 的标识符.这在 windows.h 的范围内应该是隐形的!

有没有我可以更改的设置来阻止这种烦人的行为?

我 100% 肯定问题不在于我的解决方案的结构,因为如果我使用已在 windows.h 中定义的标识符在我项目的另一部分中,编译器无法识别它并且无法编译...但 IntelliSense 可以识别它!

最佳答案

引述从事 VC++ 工作的 Microsoft 员工 Andy Rich 对这篇博客文章的评论:Troubleshooting Tips for IntelliSense Slowness

The browsing database will find all source files that are somehow included in your project, either directly or as a result of other #include directives. This is not configurable, and is necessary in order for the IDE to be able to provide accurate answers.

很遗憾,答案是否定的,除了完全禁用 IntelliSense 之外,您无能为力。

关于c++ - IntelliSense 包含不应包含的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7666928/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com