我正在使用 Visual Studio 2008,并且我有一个加载托管 c++ dll 的本机 c++ 项目,但在最后一个项目中,智能感知不再适用于托管代码。
这个项目(dll)有一个混合代码(本机和托管),如果我在一个干净的行上只写“::”,智能感知会给我从基类继承的方法,比如常规,而不是托管代码,对于例子
array <String^>^ ContactListToChat;
我需要帮助,否则我将不得不失明。
我正在使用 Visual Studio 2008,并且我有一个加载托管 c++ dll 的本机 c++ 项目,但在最后一个项目中,智能感知不再适用于托管代码。
这个项目(dll)有一个混合代码(本机和托管),如果我在一个干净的行上只写“::”,智能感知会给我从基类继承的方法,比如常规,而不是托管代码,对于例子
array <String^>^ ContactListToChat;
我需要帮助,否则我将不得不失明。
取自解释智能感知历史的 msdn 博客:http: //blogs.msdn.com/b/vcblog/archive/2008/02/29/intellisense-part-2-the-future.aspx
在 Visual Studio 2008 中,我们已经从快速但不是很准确转变为有时快速但大部分准确......我们几乎是准确的,除了我们只捕获一个头文件的解析,即使它可以根据 .cpp 进行不同的解析包括它(即不同的#defines、编译选项等)。
这是他对为什么有时智能感知工作出色而其他时候完全盲目的解释。
您应该查看问题中提出的一些建议:如何让 IntelliSense 在 Visual Studio 2008 中可靠地工作
听起来最有可能提供帮助的是 Jogn Richardson 的回应。
1) 头文件路径设置不正确。当您发现智能感知不起作用的类型时,请使用 IDE 单击每个头文件以查找包含该类型的头文件。(右键单击#include 并选择打开文档...)。如果在您到达声明类型的文件之前失败,那么这就是您的问题。确保正确设置了头文件搜索路径。
2) 智能感知数据库已损坏。这事儿常常发生。您需要关闭解决方案,删除 .ncb 文件,然后重新打开解决方案。我在这里发布了我用来回答另一个问题的宏。