0

私のプロジェクトには、リリースモードで機能しない部分があります。を使って確認できますがprintf、何も印刷されません。次のコードでお見せします。

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

さらに、SNK_STHGlobals.hファイルで次のように定義されています

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

そのため、リリースモードで印刷したsthが表示されません。VS-2008のプロジェクトプロパティで_DEBUGについて何かしなければならないことを知りたいです。じゃない?

4

2 に答える 2

1

_DEBUGはプリプロセッサマクロです。プロパティを右クリックしてc/c ++に移動すると、プリプロセッサがオプションの1つになります。

プリプロセッサの定義は、リリースとデバッグで異なります。リリースプリプロセッサマクロにSNK_STHを追加すると、printfが表示されます。

デバッグとリリースの両方でコードを確認したい場合は、ifdefからコードを引き出すことを検討してください。

于 2012-11-16T04:01:16.173 に答える
0

_DEBUGマクロで問題が発生しました。非常に便利なのは 、ブール値を返すIsDebuggerPresent関数です。

現在のプロセスがデバッガーのコンテキストで実行されている場合、戻り値はゼロ以外です。

現在のプロセスがデバッガーのコンテキストで実行されていない場合、戻り値はゼロです。

于 2014-12-21T12:21:45.567 に答える