2011-11-22 26 views
5

私のプログラムはWindows XPでうまく動作します。いくつかのデバッグ情報を表示するために、いくつかの機能を追加し、OutputDebugString()を使用しています。 XP上で完璧に動作します。今、私はWindows 7x64で同じプログラムを使用したい。私はDebugViewに何の出力も見ません。OutputDebugString()はWindows 7x64では動作しません

F1!F1!F1!

+0

'OutputDebugString'は7 x64でうまく動作します。 'DebugView'はapplciationsの出力も表示します。 –

答えて

11

古い質問を復活させて申し訳ありませんが、インターネットを検索してこの1つに答えることができました。私は同じ状況で他の誰かを助けるためにここに投稿しています。我々の特定の問題は、OutputDebugString、MFC TRACEなどの出力をx64、混合モードのアプリケーションをデバッグするときにデバッグ出力ウィンドウに表示することでした。

マイクロソフトによると、どうやらx64の混合モードのアプリケーション(デバッグ:>デバッガのTypeプロパティページで設定)「オート」ではなく混合よりも管理がデフォルトのデバッガの種類をデバッグするため。これは、明示的に64ビットのビルドをデバッグするときに見られるように、両方の管理とネイティブデバッグ出力用の「ミックス」に設定する必要があります。

+1

私の場合は、IE拡張モジュールから出力デバッグ文字列を呼び出していました。 IEは一般的にそのような通信を許可しません。私は管理者としてIEを実行し、管理者としてDebugViewを実行することになりました。 – vrrathod

+0

私の場合は、OutputDebugStringWを呼び出していました。これをOutputDebugStringAに変更すると正しく動作しました。 –

3

3小さな提案:

  1. は、あなたが実際に(トップメニュー>キャプチャwin32のがマークされている - - >キャプチャ)のイベントをキャプチャしていることを確認しますプログラムが実行されている場合
  2. を低レベルの整合性(実行時にセキュリティ警告が出されます)では、デバッグビューを低い整合性で実行する必要があります。これを実行するには、実行する前にdbgview.exeの整合性レベルを変更する必要があります。
  3. ビジュアルスタジオを使用し、デバッガ(F5キーを押して)を実行している場合、デバッグ出力はVisual Studio(出力ウィンドウ内)で実際にキャプチャされます。 ctrl f5でプログラムを実行してみてください。
2

これが機能するかどうかは、いくつかの理由があります。私は誤ってこれを無効に - ここにあなたがこの作業を取得するためにチェックするために必要なすべてのものは以下のとおりです。

  1. は、このようにあなたがそれを見ていない、ImmediateペインにOutputペインからリダイレクト取得デバッグ出力テキストですか?

    • Debug
    • Options and Settings
    • [ ] Redirect all Output Windows text to the Immediate Window
  2. Outputペインが表示されます。このをオフにするには? Outputペインで

    • Debug
    • Windows
    • Output
  3. あなたが有効になっProgram Outputを持っているのですか?右クリック

  4. [x] Program Output
  5. ペイン内の任意の場所

    • Debug
    • Windows
    • Output
    • あなたは右Debugging Typeが選ば持っていますか? Solution Explorer

      • ([表示]> [ソリューションエクスプローラ)
      • は、プロジェクトを右クリックペイン
      • Properties
      • Debugging
      • Debugging TypeAutoのいずれかNativeまたはMixed
    • からの変更点
    • プログラムが起動する前にデバッガが接続しようとしましたか?オフAttachを有効にするには:No

    • への変更:Solution Explorer

      • ([表示]> [ソリューションエクスプローラ)は
      • プロジェクトを右クリックし、
      • Properties
      • Debugging
      • Attachペイン
    • OutputDebugStringW()をお使いですか?代わりにOutputDebugStringA()を使用してください。

    • 最後に、デバッグモードでプログラムを開始しましたか? :-)ねえ、あなたは決して知らない!

      • Debug
      • Start Debugging (F5)

ので、上記のは、私が確認するために持っていたすべてのものが正しく設定されている前に、私は包括的なリストを見たことがなかったです。

関連する問題