OutputDebugString() を使えば、IDE のイベントログ ([表示 | デバッグ | イベントログ]) に任意の文字列を出力する事ができます。
例えば、イベントログに "Hello, World." を出力したい場合には以下のようなコードを記述します。
OutputDebugString(PChar('Hello, World.'));
とっても簡単ですね。これを実行すると、イベントログには以下のように表示されます。

さて、IDE 上でなければデバッグ出力できない訳ではありませんで、何でもいいので Windows 用のデバッガを用意すれば大抵のデバッガは OutputDebugString() で吐かれた文字列を表示する事ができます。
OutputDebugString() をトレースするだけなら、インストール不要で使える DebugView がお手軽です。
[DebugView]
http://technet.microsoft.com/ja-jp/sysinternals/bb896647.aspx

DebugView は "管理者として実行" で実行し、
OS が 32bit の場合:
[Capture | Capture Win32] にチェックが入っているか確認する。
OS が 64bit の場合:
[Capture | Capture Global Win32] にもチェックが入っているか確認する。
キャプチャ対象のチェックを確認してから監視対象のアプリケーションを起動します。
- アプリケーションはデバッグビルドである必要はありません。
- 32bit / 64bit アプリケーションいずれも取得できます。
- Delphi IDE を含め、DebugView の他にデバッガが起動しているとキャプチャできない事があります。
- リモートデスクトップ操作からだとキャプチャできないかもしれません。
お客さんトコにノート PC 持ち込めないとか、リモートデバッガすら利用できない時には役に立つかも知れません。転ばぬ先の OutputDebugString()
IDE 上での OutputDebugString() を使ったデバッグ手法に関しては 第21回 エンバカデロ・デベロッパーキャンプ【T2】「実践!Delphiデバッグテクニック」 を参照して下さい。
[実践!Delphiデバッグテクニック]
資料: http://edn.embarcadero.com/jp/article/images/42116/T2_updated.pdf
サンプル: http://cc.embarcadero.com/jp/item/28783
動画1: http://www.youtube.com/watch?v=h-x9-0cKPTs
動画2: http://www.youtube.com/watch?v=tn6q94g4pfs
|