これはデバッグを目的としたもので、MSVC(2008)vsのMSVCで動作しているときにC++コンソールアプリケーションを少し動かす必要があります。MSVCの下で[コンソール]アプリケーションが実行されていることを検出する簡単な方法
msvcで動作することを検出する簡単な方法はありますか?デバッガの下で実行されているとき
おかげ
これはデバッグを目的としたもので、MSVC(2008)vsのMSVCで動作しているときにC++コンソールアプリケーションを少し動かす必要があります。MSVCの下で[コンソール]アプリケーションが実行されていることを検出する簡単な方法
msvcで動作することを検出する簡単な方法はありますか?デバッガの下で実行されているとき
おかげ
IsDebuggerPresent
関数はtrueを返します。 Here's利用可能なすべてのデバッガ関連機能のリスト。
IsDebuggerPresent APIを使用してデバッグ中であるかどうかは簡単にわかります。
http://msdn.microsoft.com/en-us/library/ms680345(v=vs.85).aspx
次に、あなたは、Visual Studioのウィンドウが存在するかどうかを確認するためのFindWindowを行うことができ...
それともベンあなたはProcess32FirstとProcess32Nextが得るtlhelp32.h機能を使用しているプロセスを列挙することができると言いましたようにアプリケーションの親プロセス(PID)を使用してGetModuleFileNameExを使用して プロセス名をVisual Studioの実行可能ファイルと同じにチェック...
デバッグ時の動作が変更されるアプリケーションは...ええと...本当にデバッグは難しいです。これは良いアイデアですか? –
@Bo:[それは意図かもしれません。](http://en.wikipedia.org/wiki/Debugging#Anti-debugging) –
右、YMMV。私は、テスト時には動作するが、プロダクションでは動作しない社内アプリケーションでは、ひどい経験があります。 :-( –