2010-09-21 63 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