2011-02-02 5 views
13

私は最近、いくつかのDelphiコードでいくつかの変更を加えなければなりませんでした。したがって、基本的な質問があります:OutputDebugStringを使用して文字列変数に含まれるメッセージを印刷するにはどうすればよいですか?

  1. コンソールに出力するにはどうすればよいですか?
  2. fxという文字列変数を使用してコンソールに出力するにはどうすればよいですか?

私はOutputDebugStringを使い始めましたが、変数で作業することができませんでした。

+0

「output to console」と言うと、コンソールアプリケーションを実際に開発しているのですか、デバッグ出力を表示したいのですか? – Tony

+0

GUIを使ったアプリケーションです。私はちょうど私がfxに慣れていたような変数をデバッグするためにイベントログに書きたいと思う。 Java。 –

+4

も参照してください:http://stackoverflow.com/questions/4421042/how-can-i-write-to-console-window-for-debugging –

答えて

21

OutputDebugStringに渡される変数を処理するためにラッパー関数を記述することができます.PCharが必要です。以下のような

何か:

procedure DebugMsg(const Msg: String); 
begin 
    OutputDebugString(PChar(Msg)) 
end; 

技術hereをデバッグするための便利な参照があります。

あなたのデルファイがちょっと錆びている場合は、今まで有用なDelphi Basicsサイトがあります。 (http://www.raize.com/DevTools/CodeSite/Default.aspを参照)コードサイトをRaizeソフトウェアから:私はよりよい解決策があると、デバッグのために、それはあなたのOutputDebugString()とのwriteln()について得た2件の回答に加えて、多く:)

+0

これはトリックでした。ありがとう! –

0

コンソールアプリケーションをお持ちの場合は、write()およびwriteln()グローバル関数を使用してください。 GUIアプリケーションを持っていて別のコンソールウィンドウを作成したい場合は、操作が面倒になります(this articleはC++で処理されていますが、プロセスをガイドします)。

+0

リンカオプションで「コンソールアプリケーションを生成する」をチェックできます。 –

+0

WriteLnをリダイレクトすることもできます。 Write()またはWriteLn()に渡されたものを表示するには、メモフィールドを含むフォームを使用してください。 –

3

使用しています。

Delphi XEをお持ちの場合は、CodeSiteの機能が少し低下しているはずです。

関連する問題