12

アプリケーションで使用したいのですOutputDebugString()が、アプリケーションがフィールドに展開されたときに別のビューアで表示するオプションが必要です。

つまり、デバッグのオンとオフを切り替えるために、フラグを変更して .exe を再構築する必要はありません。

ぐぐってみると、 DebugViewはそれを処理する必要があるようですが、それもTraceToolもこのコードからの出力を表示しません。

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
begin
   OutputDebugString(PChar('Hello, wurld'));
end;

end.

私はドキュメントを読みましたが、役に立たず、他の人も同様の問題を抱えていることがわかりましたが、解決策は投稿していません。

解決策はありますか?

4

5 に答える 5

27

DebugViewツールは正常に動作します。アプリケーションを直接起動してください(Delphi IDE または別のデバッガを接続せずに)。

とにかく、Delphi アプリケーションのOutputDebugString出力を表示する自然な方法は、Delphi IDE とEvent LogWindow を使用することです。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

于 2012-06-27T02:16:34.217 に答える
9

GExpertsには、XE2 スターターであっても、デバッグ ビューアーと、アプリケーションに追加するユニットがあり、これを行うことができます。DebugIntfユニットとGExpertsDebugWindow.exeそれに含まれるアプリケーションをご覧ください。これらは XE2 Starter (および Delphi の他のほとんどすべてのバージョン) で動作します。

GExperts には、他にも優れた IDE やエディターの拡張機能が多数含まれています。もちろん、それらはずっと使用されてきたので、かなり堅実なツールです。

于 2012-06-27T11:00:12.010 に答える
5

CnWizards には、OutputDebugString をキャプチャできる CnDebugViewer.exe ツールが含まれています (Windows 7 では管理者として実行する必要があります)。

DbgView とは異なり、CnDebugViewer はアプリケーションごとに個別のタブを作成できます。

CnPack にはユニット CnDebug.pas が含まれています。このユニットを使用して、型付きオブジェクト、コレクション、例外、memdump などをトレースできます。CnDebug.pas では、CnDebugViewer を自動起動するかどうか、デバッグ メッセージを送信しながらファイルにダンプするかどうかなども設定できます。

于 2012-06-27T06:11:36.473 に答える
4

OutputDebugString を使用する際の問題の 1 つは、他のプログラムもそれを使用している可能性があり、ログが乱雑になることです: Delphi での OutputDebugString 呼び出しのデバッグ

私たちが日々の使用に非常に満足している CodeSite Express を使用することもできます: http://www.raize.com/devtools/codesite/Default.asp

于 2012-06-27T12:23:06.127 に答える
2

XE5 の私のバージョンでは、以下の [出力メッセージ] オプションを有効にする必要がありました。

[ツール] > [オプション] > [デバッガ オプション] > [イベント ログ]

無効にした覚えはありません。

于 2014-07-11T22:11:36.980 に答える