Visual Studio 2013 C++/CLI Intellisense 参考库
Visual Studio 2013 C++/CLI Intellisense with Reference Library
我有一个包含多个项目的解决方案。
- Project1 是 C++/CLI 混合模式项目。
- Project2 是一个支持 CUDA 的 C++/CLI 混合模式项目(CUDA 编译器用于 *.cu 和 *.cuh 文件)。
Project2 通过 Project2 属性中的 Common Properties->References
接口包含 Project1。 一切都编译得很好;但是,智能感知会将 project2 的代码中对 project1 的任何引用突出显示为错误。具体来说,我收到以下类型的消息。
在我的项目 2 的 *.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 中的 header 添加 include 来使智能感知快乐,但这会导致重新定义所有 project1 的 类 并引发编译错误。
在 C++/CLI 项目选项中是否有任何我应该了解的怪癖以使智能感知快乐?
更新:我应该补充一点,有时一切正常。但是在退出 VS13 然后重新打开项目后,所有智能感知错误再次出现。
可能是 Intellisense 数据库出了问题。当它发生在我身上时,我做了以下纠正:
- 确保您的代码处于可以编译的状态。
- 退出Visual Studio
- 删除解决方案目录中的.suo 和.sdf 文件。 (删除 .suo 可能不是这个清理过程所必需的,但它没有坏处。)
- 打开 Visual Studio 中的解决方案。
- Select 构建 --> 批量构建。
- 在批处理构建 window 中,单击 "Select All",然后单击 "Rebuild"。
我有一个包含多个项目的解决方案。
- Project1 是 C++/CLI 混合模式项目。
- Project2 是一个支持 CUDA 的 C++/CLI 混合模式项目(CUDA 编译器用于 *.cu 和 *.cuh 文件)。
Project2 通过 Project2 属性中的 Common Properties->References
接口包含 Project1。 一切都编译得很好;但是,智能感知会将 project2 的代码中对 project1 的任何引用突出显示为错误。具体来说,我收到以下类型的消息。
在我的项目 2 的 *.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 中的 header 添加 include 来使智能感知快乐,但这会导致重新定义所有 project1 的 类 并引发编译错误。
在 C++/CLI 项目选项中是否有任何我应该了解的怪癖以使智能感知快乐?
更新:我应该补充一点,有时一切正常。但是在退出 VS13 然后重新打开项目后,所有智能感知错误再次出现。
可能是 Intellisense 数据库出了问题。当它发生在我身上时,我做了以下纠正:
- 确保您的代码处于可以编译的状态。
- 退出Visual Studio
- 删除解决方案目录中的.suo 和.sdf 文件。 (删除 .suo 可能不是这个清理过程所必需的,但它没有坏处。)
- 打开 Visual Studio 中的解决方案。
- Select 构建 --> 批量构建。
- 在批处理构建 window 中,单击 "Select All",然后单击 "Rebuild"。