[ad_1]
やあ、
コードがデバッグ モードで実行されている場合にのみ、一部のコード ブロックを実行する必要があります。
これを達成する方法がわかりません。説明できますか??
多くのページをグーグル検索しましたが、役に立たないことがわかりました。
プラタメシュ
解決策 3
Prerakによる解決策を見てください。 効果的かつ実際的に、それはおそらくあなたの問題を解決します.
ただし、これは文字通り求められたものではありません。 「コードがデバッグモードで実行されている場合にのみ、コードのブロックを実行する必要がある」と尋ねました。 Prerak が指摘した解決策を使用すると、別の結果が得られます。コードのフラグメントを実行することも実行しないこともできますが、これは、コードの 2 つの異なるビルドを作成できるためです。そうでない場合。 アプリケーションがコンパイルされると、何らかの方法で動作します。
つまり、アプリケーションを特定の「モード」で実行することはできません。 代わりに、作成することしかできません 2 つの異なるアプリケーション 2 つの異なる構成では動作が異なります。 1 つの重要なノード: Debug は単なる構成であり、デバッグ自体とは何の関係もありません。 デバッグと関係があるのは、コンパイル オプションです。 必要な数の異なる構成を持つことができます。 構成は、特定の名前で設定された構成セットの単なる傘です。 各構成のオプションを手動で構成します。これらのオプションは、デバッグに関連する場合と関連しない場合があります。 つまり、特定の構成でのみ実行されるコードには注意してください。 不適切なテスト結果の原因となる可能性があります。
言い換えると、 そのようなモードが存在しないため、コードがデバッグ モードで実行されているかどうかを判断できません。.
サプライズ? 🙂
解決策 1
次のようなディレクティブを使用します
#if DEBUG Console.WriteLine("Debug version"); #endif
解決策 2
解決策 4
上記の返信の日付に注意すると、OP には少し遅れる可能性があります 😉
しかし、それが他の人に役立つことを願って、2023年に私が見つけたものは次のとおりです。 https://stackoverflow.com/questions/36418307/visual-c-detect-if-the-program-is-loaded-into-the-visual-debugger[^]
そのリンクが壊れた場合の例を次に示します。
if (IsDebuggerPresent()) printf("Eureka!");
Windows 10 の VS2019 で動作し、「IsDebuggerPresent」をグーグルで検索すると、Microsoft のドキュメントに直接アクセスできます。
――ジョン。
[ad_2]
コメント