【问题标题】:Intellisense in vs2010 with c++使用 c++ 在 vs2010 中进行智能感知
【发布时间】:2011-07-07 12:40:09
【问题描述】:

我无法让智能感知工作。即使我从一个空项目开始并仅向其中添加一个文件,其中仅包含 iostream 和一个 int main() 函数,该函数使用 cout (基本上是最基本的程序)打印一个字符,如果我尝试获取智能感知显示任何内容(比如输入cout.)我明白了

IntelliSense:“没有可用的其他信息”(请参阅​​“C++ 项目中的 IntelliSense 故障排除”以获得更多帮助。)

经过数小时的谷歌搜索,在 Microsoft 网站上发现了几篇文章,这些文章提出了许多可以尝试的方法或失败的原因。我已经尝试并消除了所有这些,除了提到stdafx.h 必须在路径中。

这个文件是什么?
如果我不知道它在哪里,我如何知道它是否在路径中?
它与 IntelliSense 有什么关系?
我应该将此文件添加到我的项目中以使其正常工作吗?

谢谢。

【问题讨论】:

  • 您使用的是 C++ 还是 C++/CLI?
  • 普通的 C++。 (至少,我认为我是。我没有选择任何特别的东西。我什至不确定 CLI 是什么)
  • 如果你不使用预编译头文件,stdafx.h 不会是你的问题。检查以确保智能感知实际上已打开(在低端系统上,它实际上应该在 2010 年关闭,因为当它每 60 秒占用 100% 的 CPU 时,它几乎不可能进行编码)。当您包含iostream 并键入std:: 时,它是否会为您提供std 命名空间中可用类型的列表?
  • 已开启。不,除了上述std:: 的错误之外,它没有给出任何其他信息

标签: c++ visual-studio-2010 intellisense stdafx.h


【解决方案1】:

有几个关于类似问题的主题: 单击 VS2010 上的帮助并查找 Intellisense。

http://social.msdn.microsoft.com/Search/en-US?query=intellisense%20settings&refinement=123&beta=0&ac=1

http://social.msdn.microsoft.com/Forums/en/vswpfdesigner/thread/75c4cc8d-9a81-4bda-84f0-f619f7493b3b

stdafx.h 应在您创建新项目时自动添加。

From the file:
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently

【讨论】:

    【解决方案2】:

    看这个问题:C++ VS Express 2010 Intellisense

    CTRL+J解决了。

    编辑:可能是stdafx.h 问题!

    在项目中添加一个文件stdafx.cpp和一个文件stdafx.h! 使用#include "stdafx.h" 作为所有 .cpp 文件中的第一行代码。 在stdafx.h 中包含所有很少/从不更改和经常使用的头文件。 在您的项目中打开预编译器头文件并重新构建项目。

    (创建一个带有预编译头文件的虚拟项目,看看它是如何完成的)

    【讨论】:

      【解决方案3】:

      只是把它扔在那里,你正在使用namespacestd?例如:

      std::cout.
      

      因为如果没有看到cout,智能感知将无法工作

      编辑:我查看了该错误消息,所以情况并非如此,但留下答案以防它可能对某人有所帮助。

      【讨论】:

        【解决方案4】:

        也许它从未安装过,您尝试过修复安装吗?值得一试..

        【讨论】:

          【解决方案5】:

          IntelliSense 将其数据存储在 SQL Server 中,该服务器在 VS2010 安装期间安装。我建议您检查 SQL Server 服务是否正在运行。

          【解决方案6】:

          你在打开visual studio时使用/UseEnv开关吗?它破坏了 c++ 项目的 Intellisense。

          【讨论】:

            【解决方案7】:

            我通过http://connect.microsoft.com/VisualStudio/feedback/details/652838/intellisense-not-creating-ipch-folder 的微软团队解决了这个问题

            这与安装在 WinXP 上的某个 Windows 更新有关。解决方案是安装 VS2010_SP1,然后对其进行特定更新。

            【讨论】:

            【解决方案8】:

            我想我应该提到这一点:

            Visual Studio 2012 中,我注意到 Intellisense 突然停止在我的 C++ 项目中工作(与海报描述的错误相同)。发生这种情况是因为我在 Project Properties -> C/C++ -> Preprocessor 下添加了“DEBUG”作为预处理器定义。

            一旦我将其从该列表中删除,而是将其放入代码 (#define DEBUG) 中,智能感知突然又开始工作了。

            我不知道为什么会这样,我只知道它搞砸了我的智能感知。我希望这对某人有所帮助。

            【讨论】:

              【解决方案9】:

              WIN32;_WINDOWS;_DEBUG;追加_DEBUG; 删除附加_DEBUG;

              【讨论】:

                【解决方案10】:

                baruch 的回答对我有用。为了完成,这里也是 VS2010-SP1 的链接: http://www.microsoft.com/en-us/download/details.aspx?id=23691

                所以首先安装这个,然后 baruch 提到的热修复解决了我的问题,虽然整个安装花了将近 1:30 小时! (包括在我的 Win-XP 机器上重新启动一次。)

                【讨论】:

                  【解决方案11】:

                  我知道这是一个老问题,但我遇到了类似的问题IntelliSense: 'No additional information available' (See 'Troubleshooting IntelliSense in C++ Projects' for further help.)。我的问题与stdafx.h 无关。

                  为了解决我的问题,我关闭了 VS2010,删除了 .sdf 和 .suo 文件以及项目主文件夹中的 ipch 目录。

                  然后我重新启动 VS2010,等待它再次构建其所有元数据并且 Intellisense(自动完成)运行良好。

                  编辑:我不知道这种“机动”是否有负面影响。

                  【讨论】:

                    【解决方案12】:

                    请在项目目录中找到 *.sdf 文件(智能数据库缓存)并将其删除并重新启动项目解决方案,这将恢复您的智能。

                    【讨论】:

                    • 这对我有用。没有缺点,因为 db 在启动时重建。
                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2012-03-22
                    • 2011-11-22
                    相关资源
                    最近更新 更多