簡體   English   中英

vs 2008中的#ifdef _DEBUG發行模式

[英]#ifdef _DEBUG release mode in vs 2008

我項目的某些部分在發布模式下不起作用。 我可以使用printf進行檢查,但它不會打印任何內容。 我將通過以下代碼向您展示:

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

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

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

因此,我看不到我在發布模式下打印的內容。 我想知道我必須在VS-2008的項目屬性中對_DEBUG做一些事情。 是不是

_DEBUG是預處理器宏。 如果右鍵單擊屬性並轉到c / c ++,則預處理器是選項之一。

發行版和調試的預處理器定義不同。 如果將SNK_STH添加到版本預處理器宏中,您將看到您的printf。

如果要在調試和發行版中都看到代碼,請考慮將其從ifdef中拉出。

我遇到了_DEBUG宏的問題,我發現非常有用的是IsDebuggerPresent函數 ,該函數返回一個布爾值:

如果當前進程在調試器的上下文中運行,則返回值為非零。

如果當前進程未在調試器的上下文中運行,則返回值為零。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM