Visual Studio 2013 C ++ / CLI智能感知与参考库

时间:2016-03-02 16:00:52

标签: visual-studio visual-studio-2012 cuda c++-cli intellisense

我有一个包含多个项目的解决方案。

  • Project1是一个C ++ / CLI混合模式项目。
  • Project2是一个支持CUDA的C ++ / CLI混合模式项目(CUDA编译器用于* .cu和* .cuh文件)。

Project2通过Project2&#39}属性中的Common Properties->References接口包含Project1。 一切都很完美;但是,intellisense将project2代码中的任何引用突出显示为project1为错误。具体来说,我得到以下类型的消息。

在project2的* .h文件中

#pragma once
namespace Project2
{
    class TypeInProject2
    {
        property Project1::TypeInProject1^ obj 
        { 
            Project1::TypeInProject1^ get();
            void set(Project1::TypeInProject1^ value);
        };
        //"Project1" is underlined in red
        //IntelliSense: name followed by '::' must be a class or namespace
    };
}

我可以通过在project1中为标题添加一个include来使intellisense高兴,但是这会导致重新定义所有project1的类并引发编译错误。

在C ++ / CLI项目选项中是否有任何我应该知道的怪癖,以使intellisense满意?

更新:我应该补充一点,有时候一切正常。但是在退出VS13然后重新打开项目之后,所有智能感知错误再次出现。

1 个答案:

答案 0 :(得分:3)

可能是Intellisense数据库搞砸了。以下是我在发生这种情况时所做的纠正:

  1. 确保您的代码处于可以编译所有内容的状态。
  2. 退出Visual Studio
  3. 删除解决方案目录中的.suo和.sdf文件。 (删除.suo可能不是这个清理过程所必需的,但它不会受到伤害。)
  4. 在Visual Studio中打开解决方案。
  5. 选择构建 - >批量构建。
  6. 在Batch Build窗口中,单击“Select All”,然后单击“Rebuild”。