在Visual Studio 2010中,C++/CLI没有智能感知?

52

我刚从 Visual Studio 2008 升级到 Visual Studio 2010 (最终版本),发现一个主要问题:

当我尝试在托管 C++ 源文件中使用自动完成时,页脚中会出现一个小提示:

C++/CLI 的 IntelliSense 不可用

哦,是不是 Visual Studio 2010 中已经取消了 C++/CLI 的 IntelliSense? 有什么办法可以让它重新生效吗?它确实非常有用...


可以启用它,请查看我在这里的回答: https://dev59.com/JnA75IYBdhLWcg3wg5Zh#29333749 - yanger
7个回答

45

你说得对。不幸的是,这个功能已经被取消了。你可以在Microsoft Connect 网站上查看该问题。

我会为了回答这个问题而引用他们的话:

不幸的是,在这个版本中,由于时间限制,我们不得不放弃对C++/CLI的IntelliSense支持。如果你想要获得一些类似于快速信息和成员列表的IntelliSense,你可以在项目属性中选择不使用/clr支持。

关于如何恢复IntelliSense,目前最好的机会是使用第三方工具,例如VA Assist等。我曾试用它与Visual Studio 2008一起使用,它的IntelliSense比默认的好多了。

Visual Studio 2012中,这个功能又可用了。


谢谢提供的信息!我会看看 VA X ... 或者推迟我们转移到 VS2010。 - Sam
3
如果您使用C++/CLI,VA X是必备的...但根据我使用C++/CLI的经验,我建议尽可能远离它! - surfen
如果他们没有在VS2012中“修复”它,那么人们会想知道他们是否已经购买了Whole Tomato并以此为借口进行了暗中的抢钱行为。希望他们能通过服务包恢复它在VS2010中的功能。 - Synetech

8
如果您想要恢复 IntelliSense 功能,请安装 Whole Tomato Software 的 Visual Assist X。在这里,您可以获取 30 天的试用期来检查 IntelliSense。

7
根据Visual C++ Team Blog,C++/CLI Intellisense将出现在下一个版本的Visual Studio中,但不会出现在VS2010的服务包中。该博客文章还详细介绍了导致这种悲惨状态的原因。

4
我为土著居民感到难过。他们得到了非常糟糕的待遇。 - surfasb
4
这句话的意思是微软希望人们放弃不受管理(也就是快速、小型)的代码,转而使用他们自己的Java版本。☹ - Synetech

6

我不知道你是否可以使用这个设置,但它对我有效。我只为使用它的cpp文件勾选了“通用语言运行时支持”。我没有为整个项目勾选它,但我在所有不使用CLI的文件中都有智能感知。


1

是的!您可以启用IntelliSense,但需要一些技巧。请按照以下说明操作:

  1. 进入项目属性。(在“项目资源管理器”中右键单击项目名称,选择“属性”,或者直接使用 Alt + Enter
  2. 从“配置属性”中选择“常规”。
  3. 在右侧区域中找到“公共语言运行时支持”,将其更改为“不支持公共语言运行时”。
  4. 单击“确定”按钮。

现在IntelliSense正在工作。但是编译代码时会出现一个错误!(错误为:error LNK1123: failure during conversion to COFF: file invalid or corrupt

您可以简单地返回项目属性,并将“公共语言运行时支持”更改为“公共语言运行时支持,旧语法 (/clr:oldSyntax)”。

祝您好运。


0

这个解决方案仅适用于您不需要公共语言运行时
VS2010中,它对我有效
转到项目属性 > 配置属性 > 常规 > 公共语言运行时支持并将其设置为不支持公共语言运行时。 只需点击应用按钮后即可正常工作。


0

如上所述,您可以安装一些付费软件,例如“Whole Tomato Software”的“Visual Assist X”。

或者

您可以使用包含智能感知*的开源工具,其中一个工具是Qt Creator 3.3.1(开源)。您有两个选择,要么使用Qt设置整个项目以使用VS2010编译器进行编译,要么使用Qt链接到您的源文件并使用VS2010进行编译。您在Qt中编写代码,保存后,切换到Windows上的vs2010进行编译和调试。

当在Qt中保存更改时,vs2010会自动重新加载项目中的源文件,然后您就可以进行编译了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接