OutputDebugString 関数でデバッグ メッセージを送信しようとしています。dll プロジェクトでこの関数を使用すると、DebugView でこのメッセージが表示されます。コンソール アプリ プロジェクトでもこの関数を使用していますが (同じソリューション)、メッセージを取得できません。コンソール アプリケーションを除くすべてのメッセージが DebugView に表示されます。シンプルなコードOutputDebugStringA("debug");
やOutputDebugString(L"debug");
コードも表示されません。それは何を引き起こす可能性がありますか?
1 に答える
1 つの問題は、VS 出力ウィンドウまたはツール DebugView ( https://technet.microsoft.com/en-us/sysinternals/bb896647?f=255&MSPPError=-2147217396 ) でアクセスするかどうかです。それらは違う。
アプリをデバッグせずにデバッグ ビューを使用する場合は、「デバッグなしで開始 (Ctrl+F5)」を使用して実行します。
VS の出力ウィンドウと他のアプリの出力を正常に使用している場合、特定のコンソール アプリだけがこの問題を抱えています。デバッガ ツールとは関係ないと思います。プロジェクト自体または VS の設定について考えます。
(1)コード行「OutputDebugString(L"debug");」にブレークポイントを設定し、「F5」を使用してアプリをデバッグし、ブレークポイントにヒットした後、「ステップ イン (F11)」をクリックしてからアクセスしてください。デバッグ出力ウィンドウ。特定の行コードがあなたの側で呼び出されなかった可能性があります。
(2)同じソリューション内に複数のプロジェクトが存在するため、このコンソールアプリをスタートアッププロジェクトとして設定してください。または、このプロジェクト用に単一のソリューションを作成して、再度デバッグすることもできます。少なくとも、他のプロジェクトがこの特定のコンソール アプリに影響を与えるかどうかを知ることができました。
(3)他のVS IDEでテストして、VS IDEの問題ではないことを確認してください。私は自分の側でデフォルトのVS設定を使用しているだけで、うまく機能します。
参照:
https://blogs.msdn.microsoft.com/reiley/2011/07/29/a-debugging-approach-to-outputdebugstring/