3

我的项目有一堆#ifdefs. 这些#ifdefs 使用的宏通常通过命令行使用'/D'选项来获取不同的构建配置。Visual Studio 错误地假定这些宏未定义,并将这些#ifdefs 中存在的代码块灰显。问题不在于语法突出显示 - 我可以将灰色代码从选项转换为彩色代码;主要问题是我无法访问其中存在的任何函数的函数定义#ifdef。我尝试阅读有关 Visual Studio提示文件的信息,但这对我不起作用。

谁能帮我解决这个问题?我正在使用 Visual Studio 2008。

4

2 回答 2

2

您是否在 VS 中将几种构建定义为 Debug、Release 等配置,还是使用 makefile 构建?如果您还没有教 VS 关于您的 /D 选项,那么我想它对您没有帮助。但是你应该可以在项目属性(Configuration Properties, C/C++, Preprocessor)下设置Preprocessor Definitions来得到你想要的效果吧?

/DMACRO=XXX对于传递给编译器的每个选项,请MACRO=XXX在 IntelliSense 预处理器定义中指定。/DMACRO对于传递给编译器的每个选项(无值),请MACRO在 IntelliSense 预处理器定义中指定。

于 2010-10-28T18:40:00.467 回答
0

If you're not debugging, and you're just trying to get intellisense or whatever to react, you can always just throw up a quick #define to force the IDE to behave.

Seems you have a similar problem as this fellow:

Can intellisense be enabled in VS2008 within preprocessor directive blocks like #ifndef ... #endif

于 2010-10-28T18:20:15.147 回答