2010-09-21 59 views
0

在Visual Studio 2005中,我有一个带有预处理器宏的.h文件。它们显然对于Visual Studio的Intellisense来说太复杂了,因为如果它们存在,它们会使Visual Studio崩溃,而如果它们不存在,它就会正常工作。有谁知道阻止Visual Studio解析Intellisense文件的方法,但仍然将其包含在构建中。顺便说一下,我已经尝试了以下内容:由于宏文件导致的Visual Studio Intellisense崩溃

  1. 通过重命名feacp.dll来禁用智能感知。工程,但不切实际。
  2. 视觉辅助。工程,但250美元。
  3. 安装Visual Studio SP1 + Intellisense修补程序(KB947315)。不修复它(并且吃掉1GB的硬盘空间)。

回答

0

首先要尝试安装Visual Studio 2005 SP1。这解决了很多的智能感知有关的问题可以帮助你

如果不解决这个问题的尝试,不包括该项目的文件。这可以防止它的任何内容出现在Visual Studio功能中(例如intellisense)。如果它只是一个头文件,它不应该影响构建,因为实际文件不会被删除,它不会被视为项目的一部分。

+0

我编辑了我的问题,添加了我已经安装了SP1。它不能解决问题。另外,从版本中删除文件并没有帮助(我已经尝试过了),因为VS搜索#include树(我假设)并仍然找到该文件。 – Jack 2010-09-21 07:37:27

0

好的,为了别人的利益,我会自己解决这个问题!我一直在摆弄,答案如下。如果你有这个问题,并且你删除了你的ncb文件来强制Intellisense更新,你可以向你自己证明这是有效的。

的#ifdef出有问题的代码在.h文件中,如下所示:

#define SOMETHING_UNIQUE 

#ifdef SOMETHING_UNIQUE 
<the offending code> 
#endif 
实际使用宏(即来#include .h文件cpp文件)的文件中

智能感知现在将忽略.h文件中导致其崩溃的代码(它将在编辑器中变为灰色),但它仍会被编译。

+0

显然我不能接受这个答案2天以上......但它是答案,所以使用它的你喜欢! – Jack 2010-09-21 07:53:41