在Visual Studio 2005中,我有一个带有预处理器宏的.h文件。对于Visual Studio的Intellisense来说,它们显然过于复杂,因为如果它们存在则会使Visual Studio崩溃,而如果它们不存在则它会正常工作。有没有人知道一种方法来阻止Visual Studio解析Intellisense的文件,但仍然包含在构建中。顺便说一句,我已经尝试了以下内容:
答案 0 :(得分:0)
首先要尝试安装Visual Studio 2005 SP1。这修复了许多智能感知相关的问题,可能会帮助你
如果这不能解决问题,请尝试从项目中排除该文件。这可以防止任何内容出现在Visual Studio功能(例如intellisense)中。如果它只是一个头文件,它不应该影响构建,因为实际文件不会被删除,它不会被视为项目的一部分。
答案 1 :(得分:0)
好的,为了别人的利益,我将自己解决这个问题!我一直在摆弄,答案如下。如果您遇到此问题,并删除了您的ncb文件以强制Intellisense更新,您可以证明这是有效的。
#ifdef .h文件中的违规代码如下:
#ifdef SOMETHING_UNIQUE
<the offending code>
#endif
在实际使用宏的文件中(#include .h文件的cpp文件):
#define SOMETHING_UNIQUE
Intellisense现在将忽略导致它崩溃的.h文件中的代码(它将在编辑器中显示为灰色),但它仍然会被编译。