0

我的项目的某些部分在发布模式下不起作用。我可以通过使用来检查它printf,它不会打印任何东西。我将在以下代码中向您展示:

void SNKsomething::vGetState()
{
#ifdef SNK_STH
for(int i = 0; i < 2; i++)
{
printf("sth\n');
}

此外,SNK_STH在 Globals.h 文件中定义如下

#ifdef _DEBUG // in Project properties
#define SNK_STH
#else
// .....

所以,我看不到我在发布模式下打印它的东西。我想知道我必须在VS-2008的项目属性中对_DEBUG做一些事情。我不是吗?

4

2 回答 2

1

_DEBUG 是一个预处理器宏。如果您右键单击属性并转到 c/c++,预处理器是选项之一。

预处理器定义对于发布和调试是不同的。如果您将 SNK_STH 添加到发布预处理器宏中,您将看到您的 printf。

如果您想在调试和发布中查看代码,请考虑将其从 ifdef 中拉出。

于 2012-11-16T04:01:16.173 回答
0

我遇到了 _DEBUG 宏的问题,我发现非常有用的是 返回布尔值的IsDebuggerPresent 函数:

如果当前进程正在调试器的上下文中运行,则返回值非零。

如果当前进程未在调试器的上下文中运行,则返回值为零。

于 2014-12-21T12:21:45.567 回答