VS2005中#ifdef XXXX后代码灰色相关智能帮助不可用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS2005中#ifdef XXXX后代码灰色相关智能帮助不可用相关的知识,希望对你有一定的参考价值。

由于#ifdef XXXX为0(XXXX未用#define定义),
之后的代码为灰色表示此时代码为不活动,所有的智能帮助功能无效
如:转到定义,查找所有引用等等.
请问有什么办法能使其可用么?或者可以让编译器不进行#ifdef后面的代码的有效性检查?

有大牛知道的还望帮个忙,谢过
一楼大牛:
thx,
这样做是可以让其可用...用个查找替换就可以解决,但是总觉得有失偏颇,且vs应该有相应设置才对吧,问题暂时放这儿看有其他大牛知否

最简单的方法:把#ifdef XXXX直接标识删除掉,同时删除掉与之匹配的#endif.
但这种方法可能会引起麻烦,比如有的是编译器根据你的系统环境而选择编译的,如果删除这些则会出错,这时你可查阅相关的文档把程序移植到符合那个编译条件的系统上自然就激活了。
参考技术A 出现灰色有这样一种原因:
在其他的头文件中,已经对xxx定义过 ,应该是写错了

查找#ifndef XXXX 是否在其他头文件中已经定义过XXXX

修改成不一样的宏定义就可以了

以上是关于VS2005中#ifdef XXXX后代码灰色相关智能帮助不可用的主要内容,如果未能解决你的问题,请参考以下文章

VS2005 检测内存泄漏的方法(转载)

为啥我的vs2008工具箱中没有控件,显示全部都是灰色的,在设计模式下也没有,而且卸了重装也没有,

关于#if defined和#ifdef

使用 VS2005 编译 directshow sample 时链接错误

#ifdef #endif

#ifdef #endif